Bei Oxygene muss man halt die
GUI neu machen, da es keine
VCL mehr gibt. Das ist analog zu der Umstellung
VCL zu FMX, richtig?
...- UI wegwerfen (wie beim
VCL/FMX Wechsel)
Das stimmt nur bedingt. Mit dem
MIDA-Converter kann man zumindest sehr gut die Programm-Oberfläche konvertieren.
Ich mache das jetzt überwiegend so, dass ich einfach in der
VCL-Form alle Controls auswähle, kopiere und in eine neue Form einfüge. Dann habe ich also nur
VCL-Oberfläche ohne Source-Code. Bei einzelnen "Kandidaten" (z.B. TNotebook) funktioniert die Konvertierung (noch) nicht, da ändere ich die dann schnell in Controls um, wo ich weiß, dass es funktioniert (in diesem Fall also ein TPageControl). Dann lasse ich dort den MIDA-Converter drüber laufen und habe ratz fatz meine Oberfläche unter FMX wie unter der
VCL. HIer könnt Ihr Euch das mal in
meinem Video-Blog ansehen (Tipp: Vollbild und 720 DPI).
Dann kann ich Schritt für Schritt wieder die einzelnen Ereignisroutinen "befüllen", wobei es sich dort anbietet, UI und Code mehr zu trennen, falls man es eh nicht schon getan hat. Das schöne daran ist, dass man von Anfang an ein lauffähiges Programm hat und es schrittweise vervollständigen kann.
Da man in umfangreicheren Projekten ja durchaus 100 Formulare oder deutlich mehr hat, sehe ich da die größere Arbeit (und hier nimmt einem der MIDA-Converter wirklich viel Arbeit ab), als den Source-Code zu portieren. Delphi- und FMX-Funktionen sind eh schon in vielen Bereichen gleich (insbesondere der nicht visuelle Bereich), so dass der meiste Code, der unter Windows
VCL/
RTL funktionierte, ohne viel Änderungen auch unter Windows FMX/
RTL funktioniert (also z.B. Streams, Stringlisten, eigene Klassen, usw). Nebenbei funktioniert das Meiste sogar auch schon so unter MAC
OS X, ohne dass IFDEFS zwischen Windows und MAC
OS X für unterschiedlichen Source-Code sorgen müssten.
Außerdem kann man das eine oder andere unter FMX auch mit deutlich weniger Zeilen Source-Code erreichen. In meinem
VCL-PixPower-Programm brauche ich zur Anzeige (Owner-Draw) von Grafiken unterschiedlichen Formats aus einem Verzeichnis in einer Listbox ("Dialiste") ca. 200 Zeilen Sourcecode. Daneben kommen noch mehrere 100 Zeilen, um die Dateien einzulesen, daraus Thumbnail-Dateien zu machen und für den Zugriff bereit zu halten.
In FMX brauche ich für ALLES das (also einlesen und Anzeige) nur ca. 80 Zeilen!!! Und das ist ein Crosscompile-Lösung, die ohne ein einziges IFDEF sowohl unter Windows als auch unter MAC
OS X funktioniert.