Wir hatten auch sowas, aber weil es im XE immer kaputt gemacht wurde, hatten wir diese Teile dann in eine
Unit ausgelagert,
zumindestens bei den USES funktioniert es.
Seit Delphi 11 macht Delphi sowas nicht mehr (seltener) kaputt, so als wenn sie IF/IFDEF dort jetzt halbwegs beachten würden.
Auch gibt es noch das
{$IFDEF IMPLICITBUILDING}
, oben um die CompilerSettings, welches im XE immer kaputtgemacht (entfernt) wurde,
denn egal was jemand behauptet, dieser Schreißdreck darf NIEMALS kompilert werden.
Die "richtigen" Settings kommen aus dem Projekt und Delphi speichert in der
DPR/DPK nur die BASIS-Settings, aber kompiliert wird z.B. mit "Debug" oder "Release", womit hier Alles schief stünde, würde damit kompiliert.
Auch beim IMPLICIT-BUILDING ist der Dreck ein totaler Mister, weil, wie gesagt, sind es die falschen Settings und bei Implizit wird die DPROJ ignoriert, also wirklich ALLES ist falsch, weil der Compiler nichtmal weiß, wo er dieses Compilat ausgeben soll. (das Standard-
Package-Verzeichnis von Delphi ist es bei uns jedenfalls nicht)
sondern nur
Delphi-Quellcode:
...
{$IFDEF Win32}
designide,
{$ENDIF} <-------------------- so
Jupp, ist egal.
bei ENDIF und ELSE ab dem ersten und IFDEF ab dem zweiten "Parameter" wird es vom Compiler einfach quasi als Kommentar erkannt, also quasi ignoriert.
Besonders blöd bei Ressourcen, wo der zweiter Parameter nur in
DPR/
DPR genutzt wird, aber in
PAS wird er einfach ohne Hinweis/Meldung ignoriert.
{$R abc.res abc.rc}
(direkt im Projekt, kann Delphi dort die RC selber compilieren und so die RES aktualisieren)