Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi Bedingte Compilierung mit IFDEF (https://www.delphipraxis.net/185507-bedingte-compilierung-mit-ifdef.html)

Darlo 17. Jun 2015 14:31

Bedingte Compilierung mit IFDEF
 
Hallo zusammen,

ich baue gerade ein Projekt neu auf da es auch neben Windows, iOS und OS X jetzt auch auf Android laufen soll.

Jetzt arbeite ich mit
Delphi-Quellcode:
{$IFDEF MSWINDOWS} {$ENDIF}
{$IFDEF IOS} {$ENDIF}
{$IFDEF MACOS} {$ENDIF}
und habe gemerkt und nachgelesen das das IFDEF MACOS für OS X und iOS gilt.
Muss ich wirklich verschachteln oder gibt es ein IFDEF OSX?
Delphi-Quellcode:
{$IFDEF MACOS}
  {$IFNDEF IOS}
    Showmessage('OS X'};
  {$ENDIF nIOS}
  {$IFDEF IOS}
    Showmessage('iOS'};
  {$ENDIF IOS}
{$ENDIF MACOS}

Rollo62 17. Jun 2015 14:44

AW: Bedingte Compilierung mit IFDEF
 
Ich verschachterle nichts.

Wenn nötig schreibe ich
Code:
{$IF DEFINED(IOS) or DEFINED(ANDROID)}
Rollo

RoadR69 17. Jun 2015 14:47

AW: Bedingte Compilierung mit IFDEF
 
IFDEF MACOS: Target platform is Mac OS X.

Quelle: http://docwiki.embarcadero.com/RADSt...n_%28Delphi%29

Plattform ist also eindeutig, oder?

himitsu 17. Jun 2015 14:53

AW: Bedingte Compilierung mit IFDEF
 
Zitat:

Zitat von RoadR69 (Beitrag 1305444)
Plattform ist also eindeutig, oder?

Ja?

Hier nochmal in "kurz" (nur das Wichtigste)
http://geheimniswelten.de/sonstiges/...piler/#Defines
Und unten dran auch ein paar fertige IFs.

Achtung: XE8 ist noch nicht enthalten ... dort wurde ja iOS64 eingeführt,
aber in der OH wurde es natürlich noch nicht aktualisiert. :roll:

Photoner 17. Jun 2015 15:44

AW: Bedingte Compilierung mit IFDEF
 
Was mache ich in folgendem Beispiel falsch?

Delphi-Quellcode:
  {$IF CompilerVersion <=19.0}
  FMX.Messages,
  {$ELSE}
  System.Messaging,
  {$ENDIF}
Benutze XE5. Da gibt es noch keine System.Messaging.


Ok... dummer Fehler:
Falsche Liste gelesen.
So gehts richtig:

Delphi-Quellcode:
  {$IF CompilerVersion <=26.0}
  FMX.Messages,
  {$ELSE}
  System.Messaging,
  {$ENDIF}

himitsu 17. Jun 2015 15:52

AW: Bedingte Compilierung mit IFDEF
 
19 = CodeGear Delphi 2007 for .NET

Sieh nochmal in meine letztlich verlinkte Seite und da in der ersten Tabelle genau auf die Überschriften achten.

[edit] jupp

himitsu 17. Jun 2015 16:08

AW: Bedingte Compilierung mit IFDEF
 
PS: CompilerVersion als Konstante einfach in eine Methode reinschreiben/benutzen und die Maus drüber halten, falls man mal seine Version nicht kennt.

Darlo 17. Jun 2015 18:56

AW: Bedingte Compilierung mit IFDEF
 
Zitat:

Zitat von RoadR69 (Beitrag 1305444)
IFDEF MACOS: Target platform is Mac OS X.

Quelle: http://docwiki.embarcadero.com/RADSt...n_%28Delphi%29

Plattform ist also eindeutig, oder?


Schau Dir das mal genau an:
MACOS
DCCOSX defined (ok)
DCCIOSARM defined (ist iOS!)
DCCIOS32 defined (ist iOS Simulator)


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:35 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