$IFDEF

Adam Boduch
Składnia:`{$IFDEF name}`
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

Adam Boduch napisał(a)
{$ELSE DEBUG}

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