Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.068 Beiträge
 
Delphi 12 Athens
 
#30

Re: ScriptEngine II (v. 0.3.3.0)

  Alt 28. Sep 2009, 23:03
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
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat