Forum: Programmieren allgemein
Delphi
by Uwe Raabe,
7. Aug 2017
Kann man schon (sicherstellen das die IF-Konstrukte compilieren). Damit die älteren Compiler nicht über das LEGACYIFEND meckern, setzt man das eben nicht in den Quellcode, sondern aktiviert bei den neueren Compilern (die älteren haben sie halt nicht) die entsprechende Compiler-Option im Projekt. Das hat noch den Vorteil, daß es für alle Units übergreifend gilt.
Forum: Programmieren allgemein
Delphi
by Uwe Raabe,
6. Aug 2017
Wenn du abwärtskompatibel sein willst, dann muss IFDEF mit ENDIF und IF mit IFEND abgeschlossen werden. Das LEGACYIFEND erzwingt es eben nur, damit man es nicht irgendwo übersieht.
Forum: Programmieren allgemein
Delphi
by Uwe Raabe,
6. Aug 2017
Dient lediglich der Vereinheitlichung. Es gibt keinen Grund, warum ein {$IFDEF} anders abgeschlossen werden soll als ein {$IF ...} - außer eben die Abwärtskompatibilität. Programmiert man nur für die neueren Versionen tut es eben immer ein {$ENDIF}.
Durch Setzen von {$LEGACYIFEND ON} kann man sicherstellen, daß der Code auch unter Delphi-Versionen vor XE4 compiliert.