Dyrektywy ostrzegawcze

Adam Boduch

Dyrektywy ostrzegawcze umożliwiają opatrzenie danego elementu programu (Procedury, funkcji, modułu specjalnym oznaczeniem, dzięki któremu kompilator w trakcie kompilacji wyświetli odpowiednie ostrzeżenie.

Dyrektywy Platform, Deprecated i Experimental przydają się szczególnie w trakcie prac zespołowych nad jednym projektem. Przykładowo, można oznaczyć moduł klauzulą experimental, dzięki czemu w oknie komunikatów błędu wyświetlony zostanie napis: [Warning] Project3.dpr(8): Unit 'Unit1' is experimental. Stąd będzie wiadomo, że dany moduł jest w fazie testów (eksperymentów).

Klauzulami ostrzegawczymi można oznaczać różne elementy języka Delphi: moduły, typy, procedury. Na przykład:

unit Unit1 experimental;

W takim przypadku moduł Unit1 jest oznaczony jako eksperymentalny. Proszę, zwróćmy uwagę na to, iż pomiędzy nazwą modułu a dyrektywą nie występuje średnik!

Ta zasada nie obowiązuje jednak w przypadku oznaczania procedur bądź funkcji:

program Example;

procedure SomeProc; deprecated;
begin

end;

begin
  SomeProc;
end.

Tutaj pomiędzy nazwą procedury a klauzulą należy umieścić średnik!

Dyrektywa deprecated oznacza, iż dany symbol (procedura, moduł) został uznany za niedoskonały (przestarzały) i został zachowany jedynie ze względów kompatybilności. Nie gwarantuje się wobec tego poprawnego działania tego elementu w przyszłych wersjach aplikacji. Należy stosować klauzulę deprecated w razie uznania, że dana procedura bądź typ danych są przestarzałe i należy je zastąpić innymi, nowszymi rozwiązaniami.

Klauzula platform jest ściśle związana z platformą .NET Framework. W Delphi wiele modułów, takich jak Windows czy Messages jest oznaczonych dyrektywą platform z tego względu, iż nie są one związane z .NET, a jedynie ściśle z Delphi. Nie są one więc wykorzystywane w innych platformach (urządzeniach), w których może być uruchamiany .NET, np. w palmtopach.

Nic nie stoi na przeszkodzie, aby jeden element oznaczyć naraz wieloma dyrektywami:

procedure SomeProc; deprecated; platform;
begin

end;

Jeżeli wyświetlanie komunikatów ostrzegawczych jest z jakichś względów niewskazane, można je wyłączyć, stosując specyficzny symbol:

program Example;

{$WARNINGS OFF}

Dyrektywa kompilatora {$WARNING OFF} wyłącza wyświetlanie ostrzeżeń w programie.

2 komentarzy

"Ten element języka programowania dotyczy jedynie wersji Delphi dla .NET"

dziwne bo platform i deprecated dzialaja ladnie pod d7 personal jedynie przy experimental delphi oznajmia ze nie ma pojecia ocoloto ;)

Racja, usunelem informacje.