Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Erste FMX-Versuche (https://www.delphipraxis.net/208080-erste-fmx-versuche.html)

Delbor 6. Jun 2021 21:33

Delphi-Version: 10.4 Sydney

Erste FMX-Versuche
 
Hi zusammen

Nachdem ich nun schon einige Jährchen mit Delphi und der VCL arbeite, finde ich, ist es nun schon mehr als überfällig, dass ich mich in FMX einarbeite.
Ganz Grob hatte ich da mal 2 Demos offen und gerade eben einne leere Geräteübergreifende Anwendung begonnen, Sprich, meine Anwendung esteht erstmal aus einer kompett leeren Form-
Tja, und da geht mein Blick erstmal zu ObjectInspector und Palette. Und die kennt offenbar sämtliche VCL Komponenten, einige solcher Dinger, die es unter der VCL nicht gibt und einige, von denen nicht wirklich klar ist, zu welchem Framework sie nun gehören.

Aktuell habe ich entdeckt, dass ein TMenueitem zwar erzeugt werden kann, aber nie sichtbar wird.

Des weiteren befinden sich in meiner Komponentenpalette Kategorien wie FileUtils - die Kategorie des TFilesearcher von DeddyH und einer benötigten *.pas. TFileseaercher ist unter vielen älteren Delphis lauffähig, aber nur unter der VCL- Andere Komponentenframeworks sind auch nur (zum grössten Teil?!) unter der VCL lauffähig. Zum Beispiel die Jedis oder die Raize-Komponenten. Von letzteren bin ich sicher, dass es keine FMX-Versionen gibt.

Was kommt da auf mich zu? Muss ich damit rechnen, plötzlich eine nicht funktionierende Komponente zu haben?

Gruss
Delbor

DeddyH 6. Jun 2021 21:49

AW: Erste FMX-Versuche
 
Stell Dich schon einmal auf einen ganzen Sack voller IFDEF-Direktiven ein. Der FileSearcher funktioniert nur unter Windows, bei vielen anderen VCL-Komponenten wird das nicht anders sein.

Harry Stahl 6. Jun 2021 22:15

AW: Erste FMX-Versuche
 
Ja, von den meisten VCL-Komponenten wirst Du Dich verabschieden müssen. Wenn es um Standard-Komponenten geht, dürfte das egal sein, weil FMX das entsprechend anbietet.

Hast Du spezielle Komponenten, die bislang nur unter VCL liefen, dann musst Du schauen, ob der Hersteller inzwischen auch etwas für FMX anbietet oder einfachere Sachen evtl. selber auf FMX umstellen.

Es gibt aber auch Anbieter, die haben Komponenten, die mit identischen Eigenschaften und Funktionen sowohl unter der VCL als auch unter FMX laufen (die TMS-FNC -Komponenten). Es gibt übrigens auch ein paar (schmutzige) Tricks, VCL-Komponenten in Dein FMX-Programm einzubauen, aber davon würde ich strikt abraten, weil dies letztlich zu instabilen Programmen und unerklärlichen Problemen führen kann.

Aber falls es Dir Spaß macht, mal was interessantes neues zu lernen, dann ist FMX eine schöne Sache, weil es gleichzeitig die Möglichkeit (und die Notwendigkeit) eröffnet sich mit anderen Betriebssystemen zu befassen, sei es Linux oder MACOS oder halt die mobilen Systeme.

Am Anfang ist der Lernaufwand groß, allerdings ist es heutzutage schon sehr viel einfacher, es gibt Mengen an Literatur, Videos und auch hier auf der DP findest Du alle möglichen Fragen und Antworten zu FMX.

DeddyH 6. Jun 2021 22:32

AW: Erste FMX-Versuche
 
Wenn man bereit ist, sich von Pascal zu verabschieden, gibt es eine ganze Reihe an Alternativen. Ich persönlich bin nach 2 Jahren Frustration diesen Weg gegangen, aber das bleibt natürlich jedem selbst überlassen.

Harry Stahl 6. Jun 2021 22:44

AW: Erste FMX-Versuche
 
Zitat:

Zitat von DeddyH (Beitrag 1490780)
Wenn man bereit ist, sich von Pascal zu verabschieden, gibt es eine ganze Reihe an Alternativen. Ich persönlich bin nach 2 Jahren Frustration diesen Weg gegangen, aber das bleibt natürlich jedem selbst überlassen.

Rein interessehalber: Wo bist Du jetzt gelandet? XCode und Android-Studio oder ganz was anderes?

DeddyH 7. Jun 2021 05:57

AW: Erste FMX-Versuche
 
Ich war zuerst bei Ionic gelandet, bin jetzt aber auf Flutter umgestiegen. Als IDE nutze ich Visual Studio Code. Das ist alles Open Source und auf MacOS lauffähig, somit entfallen auch irgendwelche PAServer und Konsorten.

Harry Stahl 8. Jun 2021 18:29

AW: Erste FMX-Versuche
 
Zitat:

Zitat von DeddyH (Beitrag 1490785)
Ich war zuerst bei Ionic gelandet, bin jetzt aber auf Flutter umgestiegen. Als IDE nutze ich Visual Studio Code. Das ist alles Open Source und auf MacOS lauffähig, somit entfallen auch irgendwelche PAServer und Konsorten.

Das mit dem PAServer empfinde ich inzwischen gar nicht mehr als Nachteil, sondern als Vorteil. Denn ich brauche Delphi nur einmal unter Windows zu installieren (was inzwischen schnell und relativ zuverlässig funktioniert) und mal eben kurz den PAServer unter Linux und MACOS und schon laufen meine Programme da jeweils. Aus Marketing-Sicht fände ich allerdings eine lauffähige IDE unter Linux und MACOS nicht verkehrt, denn Linux- oder MACOS-Fans werden nicht unter Windows arbeiten wollen.

Ich habe mir mal ganz kurz IOnic (so eine Variante von HTML / CSS und Javascript) angesehen und einige Videos zu Flutter / dart.

Vom Installationsaufwand finde ich das deutlich umständlicher für Flutter als für Delphi. Und wie Du schon sagst, man muss bereit sein sich von PASCAL zu verabschieden und alles über Bord zu werfen, denn in Flutter kann man gar nichts mehr von Delphi VCL/FMX verwenden. Wenn man ganz neue Projekte anfängt, könnte man ja noch mal drüber nachdenken (wenn man bereit ist, ALLES noch mal neu zu lernen), aber größere Projekte da zu portieren dürfte ausgeschlossen bzw. nicht wirtschaftlich zu realisieren sein. OK, Google steckt dahinter mit vielen Mrd Dollar in der Rückhand, aber trotzdem mal sehen, ob das nur ein kurzfristiger Hype bleibt und dann was anderes kommt.

Insofern ist der Übergang von VCL zu FMX in der Relation zu Flutter ein Klacks...

Rollo62 8. Jun 2021 18:42

AW: Erste FMX-Versuche
 
Flutter und Co. ist ganz klar Mobile- und Web-zentriert, und wenn man Glück hat ist noch Desktop dabei.
Angeblich geht Desktop auch mit Flutter, hatte ich mal gelesen, was womöglich irgendwie mit Chromium zu tun haben könnte.

Trotzdem macht Delphi mit Desktop first, starken Datenbanken und systemnahen Windows-Funktionen durchaus Sinn.
Zumal es mit FMX Obiges auch kann, wenn auch zugegebenermaßen nicht perfekt.

Ob Flutter aber auch perfekt für Desktop DB-Lösungen ist wage ich mal zu bezweifeln.

Es kommt eben immer drauf an was man eigentlich möchte.

Harry Stahl 8. Jun 2021 18:47

AW: Erste FMX-Versuche
 
Liste der Anhänge anzeigen (Anzahl: 1)
Nachtrag: Ich hab die TFilesearcher-Componente hier im Forum gefunden, einmal geladen und testweise in Delphi 10.4.installiert.

Dann habe ich es mit CrossVCL für Linux compiliert.

Ich musste einen Suchpfad zum Source hinzufügen, den Basis-Pfad von C:\ auf / ändern und erst mal die Rückgabewerte rausnehmen, wo finddata verwendet wurde, das kennt CrossVCL anscheinend nicht.

Dann lies es sich kompilieren und es läuft unter Linux (siehe anlg. Screenshot). Das war ne Sache von 2 Minuten. Die Dateisuche funktioniert nicht, wahrscheinlich wegen der auskommentierten Rückgarbewerte. Ich denke man müsste da nicht viel ändern, wenn man es lauffähig machen wollte.

So gesehen eine weitere Alternative, um seine Delphi-Programme mit Cross-VCL unter Linux und MACOS lauffähig machen zu können. Wobei der Aufwand bei ganzen Programmen natürlich dann deutlich größer ist, als bei so einer kleinen Komponente...

DeddyH 8. Jun 2021 21:06

AW: Erste FMX-Versuche
 
Tja, für jede Aufgabenstellung das geeignete Werkzeug. Im Windows-Desktop-Bereich setze ich ja auch die VCL ein, für Web- oder mobile Anwendungen würde ich allerdings nicht unbedingt auf Delphi setzen. Wieso sollte man hunderte Euro für etwas ausgeben, was kostenlose Alternativen viel besser können?

Harry Stahl 8. Jun 2021 21:41

AW: Erste FMX-Versuche
 
Liste der Anhänge anzeigen (Anzahl: 2)
Eine kleine Richtigstellung noch: Die Dateisuche funktioniert doch (zumindest teilweise), also Suchen, incl. rekursive Suche (siehe anlg. Screenshot, auch unter MacOS).

Aber was wohl nicht passt sind die Vergleiche der Attribute (daher hier die Wahl exclusive mit Abwahl aller), da ja logischerweise Linux und Windows andere haben. Und die verwendete Variablen für die Dateigröße müsste man sich mal ansehen, unter Linux/MACOS und Windows haben einige Variablen Typen unterschiedliche Größen auch ist Linux (und inzwischen auch MACOS) immer 64 bit.

Also ich denke, dass man 2-4 Stunden brauchen würde, um das für macOS und Linux anzupassen, jemand, der mit der Komponente vertraut ist, natürlich weniger.

Ich würde aber hier überlegen, auf TfileAttributes (aus System.IOUtils) umzustellen, da hat man automatisch für jede Plattform die richtigen Attribute und müsste noch nicht mal mit IFDEFs arbeiten... Ich habe das selber schon mal für mein Dateimanger-Programm File-IO gemacht, das zeigt dann auf der jeweiligen Plattform unterschiedliche Attribute an.

Rollo62 9. Jun 2021 06:55

AW: Erste FMX-Versuche
 
Zitat:

Zitat von DeddyH (Beitrag 1490858)
Wieso sollte man hunderte Euro für etwas ausgeben, was kostenlose Alternativen viel besser können?

Stimmt wenn man alle Features einer Plattform nutzen will.
Bei Fmx und z.b. TMSWebCode/FNC rückt das große Versprechen "Ein Source für alle Plattformen" näher.
Ich gebe ja zu das es nicht pefekt ist, aber man kann sich auch gut darauf einstellen, je nachdem welche Applikation man braucht.
Meine erste Wahl ist daher seit Jahren immer FMX first, bevor ich mich nach anderen Lösungen umsehe
(Andere, viel gehypte Libraries und Lösungen verschwinden auch gerne mal schnell wieder in der Versenkung).

Die Lernkurven anderer Lösungen sind doch teilweise erheblich, da nehme ich gerne das mit was ich genauer kenne.
Mit Delphi hat man eine sehr gute Kontinuität.

Man sollte dabei aber sicher nicht davon ausgehen dass man jede Delphi5 VCL Anwendung einfach zu FMX portieren kann,
im Gegenteil.
Ich meine das FMX am Besten eine komplett neue Projektstrukturen, extreme Modularisierung und andere Vorgehensweisen braucht,
und Vieles was man unter VCL gewohnt war muss man sich wohl selber nachbauen (siehe TFilesearcher).

Hat man damit einen gewissen Level erreicht, dann kann man mit einem Code alle Plattformen abdecken.


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