9. VCL und FMX mixen: Beispiel mit Hydra und Gnostice (25.09.2014)

Mit der Lösung "Hydra" von Rem Objects können Sie unter Windows VCL und FMX-Komponenten in einem Formular mixen.

Dazu erzeugt das Hydra-Framework eine DLL-Datei, die ein oder mehrere Visual (oder auch Non-Visual) PlugIns enthalten kann. Aus dieser DLL-Datei wird dann ein PlugIn innerhalb einer Parent-Komponente eines Formulars angezeigt.

Unter VCL kann das ein Panel sein, unter FMX würde ich eine TLayout-Komponente nehmen.

Hier das Ergebnis in einer FMX-Anwendung:

Der rot eingerahmte Bereich zeigt das VCL-Visual-PlugIn aus der PlugIn-DLL an, das innerhalb einer TLayout-Komponete angezeigt wird. Bei dem VCL-PlugIn handelt es sich um die Gnostice-Komponenten aus dem VCL-PDF Toolkit, womit man unabhängig von einem installierten PDF-Anzeigeprogramm auf dem PC PDF-Dateien in seinem Programm anzeigen (oder auch erzeugen) kann.

Demnächst soll es übrigens von Gnostice auch eine reine PDF-FMX-Lösung für Win/MAC/IOS geben, allerdings zunächst nur die Viewer-Komponente. Die FMX-Komponten sollen dann in die bisherige Lösung integriert werden, bisherigen Anwendern steht diese Lösung dann also ohne Mehrkosten zur Verfügung.

Der ModuleManager von Hydra lädt zu einem vom Entwickler bestimmten Zeitpunkt (oder auch automatisch direkt zum Programmstart) das DLL-Modul, welches die PlugIns enthält. Zur Laufzeit kann man dann wieder mit dem ModuleManager das VisualPlugIn erzeugen und in einer Form anzeigen.

Zu den Einzelheiten verweise ich auf das Video, welches ich in meinerem Fire YouTube Monkey Kanal abgelegt habe: http://youtu.be/0K8mEzDmlaM

Was ich im Video nicht erwähnt habe: FMX und VCL-Komponenten können über Interfaces miteinander kommunizieren.

Hier im vorliegenden Fall habe ich das mit einem kleinen Trick umgangen: Ich habe einfach eine unsichtbare Form erzeugt, deren Caption den Namen der Datei enthält, welche das VisualPlugIn laden soll. Das Visual-PlugIn prüft dann einfach mit der FindWindow-Funktion, ob dieses Fenster da ist und einen Eintrag für "Caption" hat und wenn ja, wird dieser Name verwendet, um die PDF-Datei zu laden.

Link zu Hydra: http://www.remobjects.com/hydra

Link zu Gonstice: http://www.gnostice.com/

Ich bin echt Happy, jetzt die Gnostice-PDF-Lösung zu haben, das macht den Umgang mit PDF-Dateien zum Kinderspiel.

Hydra ist eigentlich nicht nur ein FMX / VCL Thema, sondern noch viel mehr:

Denn ich kann z.B. eine Delphi-2007 Lösung einfach mit neuen Komponenten und Möglichkeiten (z.B. Bluetooth, App Thetering usw.) ergänzen, ohne mein 500.000 Zeilen Programm nur dafür auf Unicode umstellen zu müssen (was unter Umständen sehr viel Arbeit machen kann oder mit dem vorhandenen Source-Code auch gar nicht gestemmt werden kann, weil z.B. 100.000 unverständliche Zeilen von Drittherstellern stammen, die gar nicht mehr existieren).