Programowanie w języku Delphi » Dyrektywy kompilatora

$IFDEF

  • 2010-10-31 18:27
  • 1 komentarz
  • 828 odsłon
  • Oceń ten tekst jako pierwszy
Składnia:{$IFDEF <i>name</i>}
Wartość domyślna:nie dotyczy


Dyrektywa warunkowa. Podobnie jak w instrkcjach warunkowych, aplikacja może zostać poddana procesowi kompilacji warunkowej, w zależności od tego czy symbol jest zadeklarowany czy też nie. To właśnie testuje dyrektywa $IFDEF. Można powiedzieć iż dyrektywa $DEFINE ustawia wartość True dla danego symbolu, a $UNDEF - False. Spójrz na poniższy kod źródłowy:

{$DEFINE DEBUG}
 
procedure Foo;
begin
  {$IFDEF DEBUG}
  ShowMessage('Opcja debug jest włączona');
  {$ELSE DEBUG}
  ShowMessage('Opcja debug jest wyłączona');
  {$ENDIF}
end;
 
{$UNDEF DEBUG}


Na samym początku kodu, zadeklarowaliśmy symbol DEBUG; następnie w procedurze Foo, sprawdzamy wartość tego symbolu. Na tej podstawie w trakcji kompilacji, kompilator pozostawi tylko ten kod, który będzie wykonywany w trakcie działania programu. Dyrektywa $ELSE odpowiada słowie kluczowemu Else z języka Delphi. Każda kompilacja warunkowa musi zostać zakończona dyrektywą $ENDIF.

Istnieje możliwość tworzenia bardziej skomplikownych warunków, co zostało omówione w artykule opisującym dyrektywę $IF.

Zobacz też:

1 komentarz

Jojersztajner 2006-03-14 16:21

<quote=Adam Boduch>

{$ELSE DEBUG}
</quote>
Po $ELSE nie trzeba stawiać nazwy symbolu. Zostawiłem jak było, bo błędy też się w takim przypadku nie pojawiają