Stimmt nicht ganz.
IFDEF und IF kann nicht "einfach" so getauscht werden.
IFDEF prüft ob der "Name" definiert ist,
aber IF prüft, ob die Condition True ergibt.
Aber {$IFDEF XYZ}
=
{$IF Defined(XYZ)}
.
Für IF gibt nicht nur ein ELSE, sondern auch auch das
ELSEIF
und man kann auch ganz nett mit OR, AND und Co. arbeiten.
Achtung:
IFDEF + ENDIF
IF + IFEND
aber, inzwischen kam wer auf die saublöde Idee ENDIF und IFEND gleich zu behandeln (vor paar Versionen) und am Ende nur noch IFEND zu erlauben,
aber gleichzeitig das nur im Compiler zu machen, anstatt es auch dem Error-Insight zu sagen.
Mit dem Ergebnis dass "Verwenden von Bedingungen für die Compiler-Version"
im
http://docwiki.embarcadero.com/RADSt...ierung_(Delphi) komplett ad absurdum geführt wird.