Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Prüfen ob Android oder Windows etc... (https://www.delphipraxis.net/200790-pruefen-ob-android-oder-windows-etc.html)

nwnssolutionssoftware 25. Mai 2019 00:41

Prüfen ob Android oder Windows etc...
 
Hallo erstmal,
eigentlich sagt der Titel alles aus...
Ich würde gerne prüfen mit welchem Endgerät ich die Anwendung ausführe. Da in meiner App nur bestimmte Funktionen unter bestimmten Betriebsystemen aktiv sein soll.
Danke im Vorraus:thumb:

philipp.hofmann 25. Mai 2019 01:20

AW: Prüfen ob Android oder Windows etc...
 
Du prüfst es weniger, sondern Teile des Codes werden nur für bestimmte Betriebssysteme kompiliert.
Das macht so mehr Sinn, weil nicht jeder Code sich für jedes Betriebssystem kompilieren lässt:

Delphi-Quellcode:
{$IFDEF MSWINDOWS}
...
{$ENDIF}
{$IFDEF ANDROID}
...
{$ENDIF}
{$IFDEF LINUX}

{$ENDIF}
{$IFDEF IOS}
  ...
{$ELSE}
  {$IFDEF MACOS}
    ...
  {$ENDIF}
{$ENDIF}
P.S.: Die Nutzung des else bei IOS macht insofern Sinn, dass Du sonst bei IOS auch in den MACOS-Code läufst.

Dennis07 25. Mai 2019 09:30

AW: Prüfen ob Android oder Windows etc...
 
Zitat:

Zitat von philipp.hofmann (Beitrag 1433106)
{$IFDEF IOS}
...
{$ELSE}
{$IFDEF MACOS}
...
{$ENDIF}
{$ENDIF}
[/DELPHI]

P.S.: Die Nutzung des else bei IOS macht insofern Sinn, dass Du sonst bei IOS auch in den MACOS-Code läufst.

Oder halt direkt mit
Delphi-Quellcode:
{$ELSEIF ...}
bzw.
Delphi-Quellcode:
{$IFNDEF ...}
.

Rollo62 25. Mai 2019 16:36

AW: Prüfen ob Android oder Windows etc...
 
Bin jetzt nicht am Rechner, es gibt auch sowas wie TOsVersion,
Mit dem man Allerlei über das OS abfragen kann.

Uwe Raabe 25. Mai 2019 17:09

AW: Prüfen ob Android oder Windows etc...
 
Grundsätzlich kannst du natürlich auch
Delphi-Quellcode:
TOSVersion.Platform
und
Delphi-Quellcode:
TOSVersion.Architecture
abfragen, solange der jeweils auszuführenden Code auch auf allen Zielplattformen compiliert. Je weniger bedingte Compilierung in deinem eigenen Code umso besser.

Allerdings sind nicht alle Eigenschaften von
Delphi-Quellcode:
TOSVersion
auch auf allen Plattformen verfügbar.

Dalai 25. Mai 2019 19:18

AW: Prüfen ob Android oder Windows etc...
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1433129)
Je weniger bedingte Compilierung in deinem eigenen Code umso besser.

Darf ich fragen warum? Geht's nur um Übersichtlichkeit des Codes oder hat das tiefere (technische) Gründe?

Grüße
Dalai

Uwe Raabe 25. Mai 2019 19:47

AW: Prüfen ob Android oder Windows etc...
 
Bedingte Compilierung ist für IDE Tools ein Graus. Abgesehen davon wird der Code auch übersichtlicher ohne solche IFDEF-Orgien. Wie gesagt, vorausgesetzt es compiliert.

Delphi-Quellcode:
  case TOSVersion.Platform of
    pfWindows: ;
    pfMacOS: ;
    pfiOS: ;
    pfAndroid: ;
    pfWinRT: ;
    pfLinux: ;
  end;
Delphi-Quellcode:
  {$IFDEF MSWINDOWS}
  //
  {$ENDIF}
  {$IFDEF MACOS   }
    {$IFDEF IOS}
    //
    {$ELSE}
    //
    {$ENDIF}
  //
  {$ENDIF}
  {$IFDEF ANDROID }
  //
  {$ENDIF}
  {$IFDEF LINUX   }
  //
  {$ENDIF}

nwnssolutionssoftware 26. Mai 2019 01:05

AW: Prüfen ob Android oder Windows etc...
 
Vielen Dank für die vielen ANtworten muss mich da jetzt erstmal durcharbeiten allerdings macht die Bedingte Compilierung sinn, jedoch ist TOSVersion.Platform mehr das was ich benötige vielen Dank an alle:thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf