AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

{$ifend} <> {$endif}

Ein Thema von EWeiss · begonnen am 6. Aug 2017 · letzter Beitrag vom 7. Aug 2017
Antwort Antwort
Seite 1 von 2  1 2      
EWeiss
(Gast)

n/a Beiträge
 
#1

{$ifend} <> {$endif}

  Alt 6. Aug 2017, 16:36
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

Geändert von EWeiss ( 6. Aug 2017 um 18:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#2

AW: {$ifend} <> {$endif}

  Alt 6. Aug 2017, 17:28
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: {$ifend} <> {$endif}

  Alt 6. Aug 2017, 17:36
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

Geändert von EWeiss ( 6. Aug 2017 um 18:49 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#4

AW: {$ifend} <> {$endif}

  Alt 6. Aug 2017, 17:44
Dann wäre es sinnvoller alle IFDEF mit ENDIF zu ersetzen?
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: {$ifend} <> {$endif}

  Alt 6. Aug 2017, 17:57
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:
{$IFDEF ConditionalExpressions}
  {$IF irgendwas <> 0}

  {$IFEND}
{$ENDIF}
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".

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".
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 6. Aug 2017 um 18:18 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: {$ifend} <> {$endif}

  Alt 6. Aug 2017, 18:36
Ok danke..

Zitat:
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".
Gut.. Denke aber jedem sollte klar sein was ich meine

gruss

Geändert von EWeiss ( 6. Aug 2017 um 18:44 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.582 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: {$ifend} <> {$endif}

  Alt 6. Aug 2017, 18:42
Gut.. Denke aber jedem sollte klar was ich meine
Ich schreibe die Direktiven ohnehin meistens klein, weil ich ja auch sonst nicht alles groß schreibe.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

AW: {$ifend} <> {$endif}

  Alt 6. Aug 2017, 18:45
Gut.. Denke aber jedem sollte klar was ich meine
Ich schreibe die Direktiven ohnehin meistens klein, weil ich ja auch sonst nicht alles groß schreibe.
Nun gut dann wird also nicht auf klein und groß Schreibung geachtet.
seit ich mit dem C++ Kram am hantieren bin dachte ich es wäre bei Direktiven in Delphi auch so.

Nun.. dann nicht.

gruss
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#9

AW: {$ifend} <> {$endif}

  Alt 6. Aug 2017, 20:10
sorry ist nicht direkt das gleiche Thema

Was bedeuten die Ausrufezeichen bei Interface im Icon? (Structur Fenster)

gruss
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.582 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: {$ifend} <> {$endif}

  Alt 7. Aug 2017, 05:03

Was bedeuten die Ausrufezeichen bei Interface im Icon? (Structur Fenster)
Dass es ein Interface ist.

Siehe hier:
http://docwiki.embarcadero.com/RADSt...Structure_View
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.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz