Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   FreePascal Was bedeutet Cross-Platform? (https://www.delphipraxis.net/172847-bedeutet-cross-platform.html)

Angel4585 25. Jan 2013 10:12

Was bedeutet Cross-Platform?
 
Ich möchte mir für private Projekte Lazarus anschauen und frage mich in dem Zusammenhang: Was bedeutet Cross-Plattform?
Natürlich bedeutet es, dass ich den selben Code auf verschiedenen Plattformen nutzen kann.
Aber wie sieht es mit systemnahen Funktionen aus?

Ein Beispiel:
Unter Windows kann ich systemweit Tastendrücke erkennen indem ich die entsprechende Windows-Message abfangen und auswerte.

Gibt es in FreePascal eine Möglichkeit dies gleichzeitig für alle Systeme umzusetzen, oder muss ich mir die API von jedem System anschauen, das entsprechend implementieren und über Compileranweisungen dann entscheiden bei welchem System ich was compiliere?

Wie weit lässt sich der entwickelte Code für mehrere Systeme verwenden und wo ist die Grenze ab welcher ich mit Compileranweisungen arbeiten muss?

jaenicke 25. Jan 2013 10:24

AW: Was bedeutet Cross-Platform?
 
Im Grunde ist die Unterscheidung einfach:
Alles was du ohne eigene direkte API-Aufrufe (also auch ohne die in entsprechenden mit Lazarus gelieferten Units) hinbekommst, haben eine Chance auch auf anderen Systemen zu funktionieren.

Leider findest du an einigen Stellen im Lazarus Code aber auch diverse Funktionen, die theoretisch mit internen Funktionen abgedeckt sind, die aber praktisch nur unter Windows funktionieren. Einfach weil es die entsprechenden Möglichkeiten unter anderen Betriebssystemen nicht gibt.

Für konkrete Fälle bleibt daher nur zu testen bzw. in den Funktionsaufrufen in den Quelltexten von Lazarus nachzuschauen...


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