Anzeigen: Delphi C++
Anzeigeeinstellungen

Konvertieren von VCL nach FireMonkey

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu FireMonkey-Anwendungshandbuch


Inhaltsverzeichnis

Unterschiede zwischen VCL- und FireMonkey-Anwendungen

Die VCL (Visual Component Library) unterstützt nur die Windows-basierte Entwicklung auf Win32- und Win64-Plattformen. FireMonkey-Komponenten wurden dagegen so konzipiert, dass sie für alle unterstützten Plattformen, einschließlich der OS X-Plattform (Mac), eingesetzt werden können.

FireMonkey ist teilweise mit der VCL-Bibliothek vergleichbar; FireMonkey und die VCL teilen die Abstammung von TObject bis TComponent, unterscheiden sich aber ab TComponent. Wenn Sie mit der VCL vertraut sind, werden Ihnen einige Klassen, Komponenten, Steuerelemente und Funktionen in FireMonkey bekannt vorkommen. FireMonkey ist jedoch ein neues Framework, das vektorbasierte, dynamische Steuerelemente und andere Funktionen bietet, die in der VCL nicht enthalten sind. FireMonkey verfügt beispielsweise über anspruchsvolle 2D- und 3D-Grafiken sowie über Spezialeffekte, wie Filter.


Migrieren von VCL-Anwendungen nach FireMonkey

Es gibt keinen direkten Migrationspfad zwischen der VCL und FireMonkey, Sie können aber eine vorhandene VCL-Anwendung konvertieren, indem Sie eine neue HD-FireMonkey-Anwendung erstellen, die vorhandene VCL-Anwendung ändern, ausschneiden und einfügen sowie ein Refactoring für die wesentlichsten Bestandteile der VCL-Anwendung durchführen. Auf diese Weise erhalten Sie eine FireMonkey-Anwendung, die plattformübergreifend ausgeführt werden kann.

Konvertieren einer VCL-Anwendung nach FireMonkey mit dem Mida Converter

Mit dem Mida Converter, einem Produkt eines Fremdherstellers, können einige Aspekte der Konvertierung von VCL-Steuerelementen in FireMonkey-Steuerelemente automatisiert werden. Mida installiert in der RAD Studio-IDE im Menü Tools ein Plug-in.

Von Mida sind mehrere Versionen verfügbar:

  • Die kostenlose Version von Mida migriert Standard-VCL-Steuerelemente und LiveBindings.
  • Die Versionen Mida Pro und Mida Studio bieten umfassendere Funktionen, wie z.B. die Konvertierung von benutzerdefinierten Steuerelementen und Bildern.

Das Mida-Pack aktiviert die Unterstützung für Schaltflächenbilder, wie für die VCL-Komponente TBitBtn.

Auf der Mida-Homepage finden Sie weitere Informationen, einschließlich Blogs und FAQs (häufig gestellte Fragen). Hier können Sie das Produkt auch bestellen: http://www.midaconverter.com/

Siehe auch Importieren oder Migrieren vorhandener Projekte nach XE2 und Migrieren von VCL-Anwendungen zu plattformübergreifenden Anwendungen.

Hauptunterschiede

FMX wurde mit gewissen Ähnlichkeiten zur VCL konzipiert, es gibt aber eine Reihe kleiner Unterschiede, die mit der VCL vertraute Entwickler in die Irre führen könnten. Dazu zählen (in willkürlicher Reihenfolge):

  • Standardsteuerelemente: VCL-Standardsteuerelemente befinden sich in der Unit Vcl.StdCtrls, die äquivalenten FireMonkey-Steuerelemente in FMX.Controls. Beide Frameworks verfügen über zusätzliche Steuerelemente in der Unit ExtCtrls (FMX.ExtCtrls und Vcl.ExtCtrls), aber ohne Überschneidungen der beiden Frameworks.
  • Position:
    • Die Position eines Steuerelements wird in der VCL durch seine Eigenschaften Top und Left ausgedrückt.
    • In FireMonkey verwenden Steuerelemente eine Position vom Typ TPosition mit verschachtelten X- und Y-Eigenschaften. Die Eigenschaft Position von 3D-Steuerelementen ist eine Instanz von TPosition3D mit einer zusätzlichen Z-Koordinate. Für die Größe verwendet FireMonkey die Breite (Width) und die Höhe Height (und für 3D-Steuerelemente die Tiefe Depth).
  • Text: Der Text einer FireMonkey-Beschriftung ist in der Eigenschaft Text nicht in der Eigenschaft Caption (wie in der VCL) enthalten.
  • Schriftgrößen:
    • In FireMonkey werden Schriftgrößen durch geräteunabhängige Pixel (DIPs, Device-Independent Pixels) ausgedrückt, 96 pro logischem Zoll.
    • In der VCL werden Schriftgrößen werden durch Punkte ausgedrückt, 72 pro logischem Zoll.
    Daher ist Text in derselben Schriftgröße (Font.Size) in FireMonkey kleiner.
  • Kontrollkästchen: In FireMonkey müssen Kontrollkästchen das Ereignis OnChange zur Reaktion auf Änderungen des "Ausgewählt"-Status anstelle von OnClick verwenden. Die Eigenschaft, die diesen Status wiedergibt, ist IsChecked, nicht Checked wie in der VCL.
  • Farben: FireMonkey-Farben haben zusätzlich zu RGB eine Alpha-Komponente (Opazität). Farben werden durch die Systemtypen TAlphaColor und TAlphaColorRec dargestellt. FireMonkey-Farbkonstanten befinden sich in FMX.Types und haben das Präfix "cla" anstelle von "cl". Siehe auch Farben in der VCL.
  • Mit TPanel wird in FireMonkey derselbe Effekt wie mit TRadioGroup in der VCL erzielt.
  • Über-/Untergeordnet-Beziehung: In der VCL können anderen Komponenten übergeordnete Objekte nur mit TForms, TFrames, TPanels und Datenmodulen erstellt werden. In FireMonkey können Sie ein beliebiges Objekt beliebigen anderen Objekten überordnen, und diese Beziehung kann in der Strukturansicht sehr einfach eingerichtet werden.
  • Ein TMaskEdit oder ein TEdit in der VCL kann in FireMonkey mit einem TEdit und der Eigenschaft Password implementiert werden.
  • Ereignisse: Die VCL-Ereignisse OnDrawDataCell oder OnDrawColumnCell können in FireMonkey durch TStringGrid mit LiveBindings ersetzt werden.
  • Konstanten: Konstanten, wie modale Ergebnisse und virtuelle Tastencodes wurden aus Vcl.Controls in System.UITypes verschoben.

Siehe auch

In anderen Sprachen