Zitat von
littleDave:
geht das wirklich - also das "IF not Declared(PosEx)"? Ich dachte, per Compiler-Switch kann man generell nicht auf Delphi-Elemente zugreifen bzw. überprüfen, ob etwas bereits vorhanden ist
Also Funktionen aufrufen oder auf Variableninhalte zugreifen geht natürlich nicht,
aber die "Funktionen" Declared (für Funktionen, Klassen, Konstanten und Variablen) und Defined für Compilerschalter geht.
Ich weiß jetzt nur nicht in welcher Delphiversion das {$IF ...} eingeführt wurde.
Delphi-Quellcode:
{$DEFINE Schalter1}
// dieses
{$IFDEF Schalter1}
{$IFDEF Schalter2}
...
{$ENDIF}
{$ENDIF}
// ist das Gleiche wie das
{$IF Defined(Schalter1) and Defined(Schalter2)}
...
{$IFEND}
// und dann gibt es noch sowas
{$IF not Declared(xyz)} {$MESSAGE Hint 'xyz gibt es nicht'} {$IFEND}
const xyz = 5;
{$IF Declared(xyz)} {$MESSAGE Hint 'jetzt schon'} {$IFEND}
{$IF xyz = 5} {$MESSAGE Hint 'xyz ist 5'} {$IFEND}
[add]
die D2010-Warungen sollten so wohl auch schon in/ab D2009 kommen