Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Mehrere IFDEF und ELSE hintereinander

  Alt 14. Apr 2020, 18:12
Ja, das war auch Absicht, mit dem Unterscheiden.

Delphi hatte sich früher mal gerühmt so extrem abwertskompatibel zu sein, aber das war einmal,
und da war es gut, das man für Compiler bis Delphi 5 ein $IF im $IFDEF verstecken kann, weil er das noch nicht kennt.

Delphi-Quellcode:
{$IFDEF ConditionalExpressions}  // das springt bis zum nächsten $IFEND bzw. $ELSE
  {$IF xxxx}

  {$IFEND}  // heißt anders, damit $IFDEF es nicht als sein Ende erkennt
{$ELSE}
  ...
{$IFEND}
Delphi-Quellcode:
const abc = 13;

{$IF abc > 10}
oder
{$IF (abc > 10) and (abc < 15)}
Delphi-Quellcode:
{$IFNDEF VER150}  // hier wird es Spaß sich eine INC zu besorgen, um Versionen besser zu prüfen, was gern knallt, wenn man diese INC auf eine zu neue Delphi-Version los lässt
gegen
{$IF CompilerVersion < 15.0}
Oder ein lustiger Code für die Größenprüfung. (ja, zu Zeiten von 16 Bit gab es das $IF noch nicht)
Delphi-Quellcode:
{$IF SizeOf(Integer) = 2}
  {MESSAGE Hint '16 Bit'}
{$ELSEIF Declared(NativeInt) and (SizeOf(NativeInt) = 4)}
  {MESSAGE Hint '32 Bit'}
{$ELSEIF Declared(NativeInt) and (SizeOf(NativeInt) = 8)}
  {MESSAGE Hint '64 Bit'}
{$ELSEIF Declared(NativeInt)}
  {MESSAGE Hint 'gibt es endlich 128 Bit?'}
{$ELSE}
  {MESSAGE Hint '32 Bit, bevor der Mist mit dem "neuen" Integer erfunden wurde'}
{$IFEND}
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (14. Apr 2020 um 18:24 Uhr)
  Mit Zitat antworten Zitat