![]() |
{$ifend} <> {$endif}
Welche unterschiede gibt es hier?
1. Wenn ich die Warnung ignorier was passiert in dem Fall. 2. Wenn ich anstelle dessen die Directive auf EndIf ändere was passiert in dem Fall. Wenn ich die Directive ausschalte mit {$LEGACYIFEND ON} kann ich unter älteren Delphi Versionen den Code nicht mehr kompilieren. Frage mich also was soll der ganze quatsch. EDIT: Warum wird im Thread Titel die Großschreibung geändert? Von {$IFEND} <> {$ENDIF} zu {$ifend} <> {$endif} ? gruss |
AW: {$ifend} <> {$endif}
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. |
AW: {$ifend} <> {$endif}
Dann wäre es sinnvoller alle IFEND mit ENDIF zu ersetzen?
Oder macht es einen unterschied. Zumindest könnte ich mir so {$LEGACYIFEND ON} errsparen und es kompiliert trotzdem noch mit älteren Versionen . Richtig? das war die frage ;) gruss |
AW: {$ifend} <> {$endif}
Zitat:
|
AW: {$ifend} <> {$endif}
Es gab aber einen Grund dafür.
Früher konnte der Compiler nur IFDEF, aber kein IF. (vor Delphi 6, glaub ich) Als Kompatibillität mit alten Compileren mußte es also unterschieden werden, damit man es verschachteln kann. $IFDEF + $ENDIF $IF + $IFEND Kann der Compiler noch keine Conditional-Expressions, dann kann man sie vor ihm so verstecken.
Delphi-Quellcode:
Würde man da jetzt für Beides das Selbe ENDE verwenden, dann täte der alte Compiler das erste ENDE schon erkennen und beim Zweiten meckern "Ende ohne Anfang".
{$IFDEF ConditionalExpressions}
{$IF irgendwas <> 0} {$IFEND} {$ENDIF} Mit XE3/XE4 wurde dann in Delphi vom Compiler Beides gleich behandelt, aber das Error-Insight abreitet aber noch paar Jahre "korrekt" und zeigte es als Falsch, wenn man nicht nach der alten Regel vorging. WARUM: Wenn du im Titel oder im Text "alle" Buchstaben großschreibst, dann wird da ein LowerCase drüber gejagt, weil das Forum davorn ausgeht, daß du "schreist". |
AW: {$ifend} <> {$endif}
Ok danke..
Zitat:
gruss |
AW: {$ifend} <> {$endif}
Zitat:
|
AW: {$ifend} <> {$endif}
Zitat:
seit ich mit dem C++ Kram am hantieren bin dachte ich es wäre bei Direktiven in Delphi auch so. Nun.. dann nicht. ;) gruss |
AW: {$ifend} <> {$endif}
sorry ist nicht direkt das gleiche Thema
Was bedeuten die Ausrufezeichen bei Interface im Icon? (Structur Fenster) gruss |
AW: {$ifend} <> {$endif}
Zitat:
Siehe hier: ![]() In der Erklärung welche Möglichkeiten ist dort zur Anzeige gibt sieht das genauso aus. Außerdem sieht jedes Interface so aus. Das ist also vollkommen in Ordnung so. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz