C++Builder XE2: FireMonkey ausprobiert

Keine Zeit? Hier die Kurzversion in 30 Sekunden.
- XE2 ist Anfang September 2011 erschienen und bringt mit FireMonkey (FMX) ein neues, GPU-gestütztes Framework neben der VCL.
- Es gibt HD- und 3D-Formulare; Ziel sind Windows und Mac OS X. iOS gibt es in XE2 nur für Delphi.
- FMX ist kein VCL-Ersatz zum Umkopieren: andere Komponenten, andere Eigenschaften, Styles statt Windows-Look. Alte Formulare muss man neu aufbauen.
- Event-Handler schreibt man genauso wie in der VCL, nur heißt es
TextstattCaption.- Einen 64-Bit-Compiler für C++ gibt es in XE2 nicht, 64 Bit nur für Delphi.
Im Juni habe ich hier einen Einsteigerartikel zum C++Builder und zur VCL geschrieben. Jetzt ist Anfang September XE2 erschienen, und das große Thema ist FireMonkey, ein neues Framework für Oberflächen. Ich hatte gerade ein paar Abende Zeit und habe es mir angesehen. Das hier ist ein erster Eindruck, kein Test. Ich habe nur Kleinigkeiten ausprobiert und nur unter Windows.
Was ist FireMonkey?
FireMonkey (kurz FMX) zeichnet die Oberfläche selbst und nutzt dafür die Grafikkarte, statt die normalen Windows-Steuerelemente zu verwenden. Dadurch sehen die Formulare auf mehreren Plattformen gleich aus; laut Hersteller laufen die Anwendungen unter Windows und Mac OS X. Man wählt beim Anlegen eines neuen Projekts zwischen einem HD-Formular (klassisch zweidimensional, aber mit allen Effekten) und einem 3D-Formular, bei dem man echte 3D-Objekte in die Oberfläche setzen kann. Für iOS gibt es in XE2 zwar auch Unterstützung, aber nur für Delphi, nicht für C++.
Anders als die VCL
Wer die VCL kennt, findet sich schnell zurecht, bis man auf die Unterschiede stößt. Das ist nämlich kein Umzug, bei dem man die alten Formulare einfach in ein neues Projekt zieht. Die Komponenten haben ähnliche Namen, kommen aber aus einem anderen Bereich (die Units heißen FMX. statt Vcl.), und viele Eigenschaften sind anders benannt oder fehlen. Maße wie Breite und Höhe sind zum Beispiel Fließkommazahlen. Das Aussehen kommt aus Styles, die man per TStyleBook ändern kann, und nicht aus dem Windows-Theme. Das gefällt mir eigentlich, weil man mit wenig Aufwand sehr andere Oberflächen bekommt. Ich würde bestehende VCL-Anwendungen aber nicht umstellen, sondern FMX für Neues nehmen, wo das Aussehen oder die 3D-Fähigkeiten gebraucht werden.
Ein kleines Beispiel
Auf ein leeres HD-Formular kommen ein TButton und ein TLabel. Doppelklick auf den Button erzeugt wie gewohnt den Click-Handler:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Label1->Text = "Hallo FireMonkey!";
}Wichtig: Beim Label heißt die Eigenschaft in FMX Text, nicht Caption. Das war bei mir die erste Fehlermeldung. Sonst ist der Ablauf so, wie man es aus der VCL kennt, und das macht den Einstieg wirklich leicht.
Was noch fehlt
Eine erste Version eines so großen neuen Frameworks hat naturgemäß Ecken und Kanten. Mir ist aufgefallen, dass nicht jede Komponente aus der VCL ein Gegenstück hat und dass man öfter in der Hilfe nachsehen muss. Wie gut es im Alltag läuft, kann ich noch nicht sagen, dazu habe ich zu wenig damit gemacht. Und noch eine Einschränkung, die man vorher wissen sollte: Einen 64-Bit-Compiler für C++ gibt es in XE2 nicht. 64 Bit ist in dieser Version nur für Delphi da, C++-Programme bleiben also 32 Bit.
Habt ihr XE2 schon ausprobiert? Würde mich interessieren, ob FMX bei euch in Frage kommt oder ob ihr bei der VCL bleibt. Bis zum nächsten Mal!
Christian Ackermann
Softwareentwickler (C++, C, Java, C#) aus der Oberpfalz, bloggt seit 2001 über Linux, Technik und Kochen.