Einzelnen Beitrag anzeigen

Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.479 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: TMS FNC vs. FMX

  Alt 26. Okt 2017, 21:30
Das wäre ja genau der Vorteil von FNC:
Wenn FNC "nur" die Basisroutinen nutzt, primitive Shapes und Text, und komplexere Controls "fehlerfreier" daraus erzeugt, und nicht von den Buggy-FMX-Control ableitet.
Dann wäre das die Art stabilere Basis die ich meine.
Hierzu ein Hinweis: Die FMX-Primitives, hier also auch die von Dir genannten TShape und TText sind bereits abgleitet von TControl. Ich denke, da wird man auch nicht drum herum kommen.

Natürlich wird es noch hier und da FMX Controls geben, aber genu die Verbindung FNC - FMX sehe ich als kritisch.
Denn das wäre doppelter Code, und wie Mensch72 schön sagte: Der Aufsatz auf dem Aufsatz.
Allerdings erleichtert mir das als Entwickler die Sache enorm. Ich muss mir nicht überlegen, wie ich unter der VCL oder FMX das Grid verwende und das auch nicht, wenn ich mit Lazarus, statt Delphi arbeite. Den Source-Code, den ich einmal für eine beliebige Plattform mit Delphi oder Lazarus entwickelt habe, kann ich auf einer anderen beliebigen Plattform mit Delphi oder Lazarus verwenden.

Ich kann "im Notfall" auch wunderbar Delphi und Lazarus-Programme miteinander koppeln. Mal als Beispiel: habe ja nun mein PC-Database von VCL auf FMX portiert und für Windows, MAC und Linux entwickelt. Leider unterstützt FNC das FMXLinux noch nicht vollständig, u.a. den Excel-Import und Export. Allerdings werden alle FNC-Komponenten vollständig unter Lazarus für alle Desktop-Plattformen unterstützt (Anm.: Dafür war FNC - als "Framework Neutral Component" auch gedacht. FMXLinux kam erst sehr viel später).

Daher habe ich mit Lazarus ein kleines simples Linux-Progrämmchen geschrieben, das ich vom Delphi-Hauptprogramm aufrufe, die zu importierende Excel-Datei übergebe und dann in das Lazarus-Grid importiere und anschließend als Datei speichere und dann im Delphi-Programm wieder im FNC-Grid einlese (30 Minuten Entwicklungsarbeit), siehe anliegende Screenshots.

Die FNC-Komponenten sind also auch Datenkompatibel unter den verschiedenen Compilern (und Plattformen). Über den Umweg mit FNC über Lazarus, kann ich also auch unter Linux die volle Programmfunktionalität anbieten, wie unter Windows und MAC. Das bietet mir einfach zusätzliche Optionen, meine Ziele zu erreichen, das ist doch super! Wenn TMS dann später auch FMXLinux bei der ExelIO-Komponente voll unterstützt, brauch ich den Umweg nicht mehr und muss nur in meinem Delphi-Hautprogramm ein IFDEF rausnehmen und 4 Zeilen löschen. So easy!

Ausserdem sind wohl die Styles auf der Strecke geblieben, was ich Schade finde, was aber womöglich auch zur gesamten Stabilität beitragen könnte.

Die grundsätzliche Frage ist handelt man sich damit mehr oder weniger Probleme ein.
Rollo
Styles sind nicht auf der Strecke geblieben, denn die Compos haben auch eine Ableitung von TStyledControl. Wenn Du für die jeweilige Komponente die Eigenschaft "AdaptToStyle" auf True setzt, passt sich die Komponente dem VCL- oder FMX-Style entsprechend an.

Falls Du den FMX-Styles nicht traust, die FNC-Kompos haben sehr umfangreiche Möglichkeiten, sich farblich nach Wunsch darstellen zu lassen, da ist man schon sehr flexibel mit. Aber ich habe hier bei den FMX-Styles wieder etwas mehr Hoffnung bekommen, da KSDEV ja nun auch Delphi-Styles für FMX und VCL anbieten (http://delphistyles.com/) und hier auch Fixes für Styles (FM UIPlus) liefern (habe ich mir gestern gezogen).
Miniaturansicht angehängter Grafiken
windowsfnc.jpg   ubuntufnc.jpg  

Geändert von Harry Stahl (26. Okt 2017 um 22:42 Uhr)
  Mit Zitat antworten Zitat