Ein Zugriff auf "normale" Code-Konstanten innerhalb einer Compiler-Direktive ist logischerweise nicht möglich, das sie ja erst während des compilierens angelegt wird und so ggf. dem Compiler garnicht bekannt ist.
Das stimmt so nicht. Folgendes funzt wunderbar:
Delphi-Quellcode:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
{$DEFINE TEST1}
const
Test2 = 10;
begin
try
{$IFDEF TEST1}
Writeln('
Test1');
{$ENDIF}
{$IF Declared(Test2)}
Writeln('
Test2 declared');
{$IFEND}
{$IF Test2>5}
Writeln('
Test2 biiiig');
{$IFEND}
Readln;
except
on E:
Exception do
Writeln(E.Classname, '
: ', E.
Message);
end;
end.
Im aktuellen Fall ist IFDEF natürlich trotzdem die bessere Wahl.