AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Unterschied zwischen $ELSEIF und $ELSEIF DEFINED()
Thema durchsuchen
Ansicht
Themen-Optionen

Unterschied zwischen $ELSEIF und $ELSEIF DEFINED()

Ein Thema von KHJ · begonnen am 11. Dez 2021 · letzter Beitrag vom 11. Dez 2021
Antwort Antwort
KHJ

Registriert seit: 15. Dez 2005
35 Beiträge
 
Delphi 11 Alexandria
 
#1

Unterschied zwischen $ELSEIF und $ELSEIF DEFINED()

  Alt 11. Dez 2021, 11:10
Delphi-Version: 11 Alexandria
Während {$IFDEF WIN32} und {$IF DEFINED(WIN32)} bei einer Plattform WIN32 immer erkannt werden, wird {$ELSEIF WIN64} bei einer Plattform WIN64 nicht erkannt, {$ELSEIF DEFINED(WIN64)} aber schon.
Delphi-Quellcode:
{$IFDEF WIN32}
  Label5.Caption := 'Label 5 $IFDEF WIN32';
{$ELSEIF WIN64}
  Label5.Caption := 'Label 5 $ELSEIF WIN64';
{$ELSE }
  Label5.Caption := 'Label 5 $ELSE von IFDEF ELSEIF ELSE';
{$ENDIF}
{$IF DEFINED(WIN32)}
  Label6.Caption := 'Label 6 $IF DEFINED(WIN32)';
{$ELSEIF DEFINED(WIN64)}
  Label6.Caption := 'Label 6 $ELSEIF DEFINED(WIN64)';
{$ELSE }
  Label6.Caption := 'Label 6 $ELSE von IF DEFINED ELSEIF DEFINED';
{$ENDIF}
Worin ist der Unterschied zwischen {$ELSEIF WIN64} und {$ELSEIF DEFINED(WIN64)}?
Karlheinz Jansen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Unterschied zwischen $ELSEIF und $ELSEIF DEFINED()

  Alt 11. Dez 2021, 11:24
$IFDEF und $IFNDEF kennen ausschließlich $ELSE.

$ELSEIF gehört zum $IF



Ja, man kann $ELSEIF auch beim $IFDEF einschmuggeln, aber es bleibt dennoch ein ConditionalDefine und kennt somit keine direkte Angabe vom $DEFINE.

Aber das funktioniert auch erst, seitdem die eigentlich getrennten Bedingungen vermischt wurden, so wie heutzutage auch $ENDIF und $IFEND nahezu gleichwertig sind, obwohl sie es anfangs absichtlich nicht waren, um vor "alten" Compilern, die noch keine ConditionalDefines kennen, davor verstecken zu können.



Also per se ist es eigentlich ein Bug, dass $ELSEIF im $IFDEF geht,
aber zum Glück wird Diesen hoffentlich niemand reparieren.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (11. Dez 2021 um 11:33 Uhr)
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
672 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Unterschied zwischen $ELSEIF und $ELSEIF DEFINED()

  Alt 11. Dez 2021, 22:35

Worin ist der Unterschied zwischen {$ELSEIF WIN64} und {$ELSEIF DEFINED(WIN64)}?
Ziemlich einfach: nach $ELSEIF wird ein boolscher Ausdruck erwartet. WIN64 ist keiner, DEFINED(WIN64) schon.
Peter Below
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:42 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