Obwohl seit der Veröffentlichung von RAD Studio 13, C++Builder 13 und Delphi 13 bereits einige Monate vergangen sind, haben wir bei Embarcadero noch nicht ausführlich über die neuen Funktionen in den Laufzeitbibliotheken berichtet. Aus diesem Grund verfasse ich einige Blogbeiträge, die sich auf verschiedene Bereiche konzentrieren, beginnend mit der FireMonkey-Bibliothek.
Es gibt nun zahlreiche neue Funktionen, darunter sehr komplexe (von denen einige bereits etwas ausführlicher behandelt wurden) und kleinere. Meine Liste der “13 wichtigsten Funktionen” ist eine persönliche Auswahl von Änderungen, die ich für besonders wichtig halte. Wie der Titel schon sagt, handelt es sich um eine persönliche Liste, da es andere neue Funktionen gibt, die Sie möglicherweise interessanter finden als die von mir ausgewählten. Beachten Sie auch, dass sich diese Liste auf neue Funktionen konzentriert, das Forschungs- und Entwicklungsteam jedoch auch eine Vielzahl von Problemen und Inkonsistenzen behoben und an Plattform-APIs und der Integration gearbeitet hat.
Inhaltsverzeichnis
FMX 1: Neue Komponente „ApplicationEvents“
RAD Studio 13 hat eine neue TApplicationEvents-Komponente eingeführt, die die Handhabung von anwendungsweiten Ereignissen erheblich vereinfacht, ohne dass manuell ein Ereignis-Handler erstellt und verknüpft werden muss. Platzieren Sie die Komponente einfach auf einer Designoberfläche (auch in einem nicht-visuellen Designer) und fügen Sie Ereignis-Handler hinzu:

Bitte beachten Sie, dass das Konzept zwar dem VCL-Gegenstück ähnelt, die tatsächlichen Ereignisse jedoch unterschiedlich sind und vom Lebenszyklus der FMX-Anwendung abhängen. Im Beispiel in der Abbildung oben behandle ich das Bei Änderung der Ausrichtung Ereignis, das in der Regel auf Mobilgeräten verwendet wird.
FMX 2: OnCheckedChange für Listenfeldelemente
Es gibt ein neues OnChangeCheck-Ereignis für ein ListBoxItem in einem ListBox-Steuerelement, wie unten dargestellt:

FMX 3: TComboEdit AutoComplete
Die Komponente TComboEdit unterstützt nun die automatische Vervollständigung während der Eingabe, ähnlich wie VCL TComboBox. Während der Eingabe schlägt das Steuerelement die ersten Elemente in der Liste vor, die mit der aktuellen Eingabe übereinstimmen. In diesem Fall enthält die Kombinationsfeld eine Liste mit Zahlen, und bei der Eingabe von “t” wird “two” vorgeschlagen:

FMX 4: Umgekehrte Spurstange
Das TTrackBar-Steuerelement verfügt über eine Reverse-Eigenschaft, die eine Umkehrung der Richtung der Trackbar ermöglicht.

FMX 5: Mausrad für Trackbar
Das gleiche TTrackBar-Steuerelement unterstützt nun auch das Scrollen mit dem Mausrad anstelle des Scrollens mit der Tastatur. Bitte beachten Sie, dass eine umgekehrte Trackbar weiterhin in die erwartete Richtung scrollt.
FMX 6: Neue Ausrichtungen
Die Aufzählung „TAlignLayout“ enthält neben einer umfangreichen Liste bestehender Ausrichtungsoptionen neue Optionen zum Zentrieren von Steuerelementen. Zu den neuen Ausrichtungsmodi gehören:
- TopCenter zentriert das Steuerelement horizontal, ähnlich wie TAlignLayout.Top.
- TopLeft richtet das Steuerelement wie TAlignLayout.Top links aus.
- TopRight richtet das Steuerelement wie TAlignLayout.Top rechts aus.
- LeftCenter zentriert das Steuerelement vertikal, ähnlich wie TAlignLayout.Left.
- LeftTop richtet das Steuerelement wie TAlignLayout.Left oben aus.
- LeftBottom richtet das Steuerelement wie TAlignLayout.Left am unteren Rand aus.
- RightCenter zentriert das Steuerelement vertikal, ähnlich wie TAlignLayout.Right.
- RightTop richtet das Steuerelement wie TAlignLayout.Right oben aus.
- RightBottom richtet das Steuerelement wie TAlignLayout.Right am unteren Rand aus.
- BottomCenter zentriert das Steuerelement wie TAlignLayout.Bottom horizontal.
- BottomLeft richtet das Steuerelement wie TAlignLayout.Bottom links aus.
- BottomRight richtet das Steuerelement wie TAlignLayout.Bottom rechts aus.
FMX 7: Tipps und Stile für den Bind Navigator
Die in Live Bindings verwendete Navigationssteuerung TBindNavigator bietet die Möglichkeit, für jede Schaltfläche der Navigation mithilfe der Untereigenschaften der Eigenschaft ButtonsOptions einen spezifischen Hinweis und Stil zu konfigurieren.

FMX 8: Verbesserungen an der Scrollbox
Das Steuerelement „TPresentedScrollBox“ verfügt über eine Reihe neuer Eigenschaften, mit denen der Benutzer die Bildlaufanimation, die Sprünge und die Touch-Interaktion steuern kann:
- Die Eigenschaft „AutoHide” legt fest, ob die Bildlaufleisten nach dem Bildlauf automatisch ausgeblendet werden.
- Die Eigenschaft „Bounces“ gibt an, ob es möglich ist, den Inhalt über die Ränder hinaus zu scrollen.
- Die Eigenschaft „ScrollAnimation“ aktiviert oder deaktiviert die Bildlaufanimation.
- Die Eigenschaft „ScrollDirections“ definiert die verfügbaren Scrollrichtungen.
- Die Eigenschaft „TouchTracking“ gibt an, ob das Steuerelement auf Berührungsereignisse reagiert.
Es gibt auch eine neue IsVisibleChild-Methode, die das Team zur Optimierung der Darstellung von TScrollBox und TPresentedScrollBox eingesetzt hat.
FMX 9: Memo-Text-Eingabeaufforderung
RAD Studio 13 erweitert das TMemo-Steuerelement in FireMonkey um die Eigenschaft „TextPrompt“. Diese wird für Platzhaltertext verwendet, wenn das Steuerelement leer ist. Sie funktioniert ähnlich wie das TEdit-Äquivalent. Nachfolgend finden Sie ein Beispiel:

FMX 10: Der neue Display Link Service
Dies stellt eine grundlegende Änderung an FireMonkey dar, die einen eigenen ausführlichen Blogbeitrag rechtfertigen würde.
Der neue Display Link Service ist nun die zentrale Engine für alle Anwendungsanimationen und ersetzt vollständig die bisher verwendete ältere timerbasierte Engine. Dieses framegenaue System nutzt die tatsächliche Bildwiederholfrequenz des Displays, um alle UI-Aktualisierungen und Animationen zu synchronisieren und zu steuern. Durch die Verwendung plattformnativer APIs wie JChoreographer (Android) und DisplayLink (iOS) stellt der Dienst sicher, dass die Animationsverarbeitung eng mit VSync-Ereignissen abgestimmt ist, was zu flüssigeren und konsistenteren Darstellungen auf allen Plattformen führt, insbesondere auf modernen Mobilgeräten mit hoher Bildwiederholfrequenz.
Die verbesserte Stabilität und Flüssigkeit der Animationen ist deutlich erkennbar: Durch die höhere Stabilität des Renderers werden die Animationen flüssiger. Dies ist eine bedeutende Änderung und Verbesserung, durch die FMX-Animationen mit anderen mobilen Lösungen gleichziehen und in einigen Fällen sogar schneller sind. Diese Verbesserung ist auf allen Zielplattformen und GPU-Treibern sichtbar, die FireMonkey verwenden kann.
FMX 11: Flexible Höhe der Menüelemente
Die Höhe von Menüelementen (TMenuItem) war früher ein konstanter Wert. Ab RAD Studio 13 kann der Benutzer ein TStyleTag-Objekt mit StyleName=“height“ zum TMenuItem-Stil hinzufügen und die Höhe des Menüelements in der Value-Eigenschaft festlegen.
FMX 12: Noch mehr Emojis
Wir haben Unterstützung für die Version 16.0 der Emoji-Symbole hinzugefügt.
FMX 13: Eine neue Maskenbearbeitungssteuerung
Es gibt ein neues MaskEdit-Steuerelement für FireMonkey, das ähnlich wie das VCL-Gegenstück funktioniert. Es enthält einen speziellen Designer für Eingabemasken, der bei der Definition der Eingaberegeln unterstützt. Sie können diesen Eigenschafteneditor zur Entwurfszeit in der folgenden Abbildung sehen:

Es gibt nur einen wesentlichen Unterschied zur VCL-Version des Steuerelements, nämlich in der Art und Weise, wie TMaskEdit in FMX mit falschen Eingaben umgeht. In der FireMonkey-Implementierung löst das Steuerelement kein Ausnahmeereignis aus, wenn der aktuelle Wert in MaskEdit ungültig ist, sondern ein OnValidateError-Ereignis. Es wird empfohlen, dieses Ereignis zu verarbeiten, um dem Benutzer eine visuelle Rückmeldung über den ungültigen Wert zu geben. Sie können beispielsweise das Feld mit einem roten Rahmen hervorheben, eine Begleitbeschriftung über einen falschen Wert hinzufügen oder sogar eine Ausnahme auslösen, wie im VCL-Steuerelement. Wenn der Wert nach dem Zurücksetzen des Fokus immer noch falsch ist, bleibt das Steuerelement in einem ungültigen Zustand, und das OnChange-Ereignis wird erst ausgelöst, wenn der Wert gültig wird.
FireMonkey wird kontinuierlich weiterentwickelt
Wie Sie in diesem Blogbeitrag sehen können, wird FireMonkey hinsichtlich seiner Funktionen (und Qualität, was ich hier nicht hervorgehoben habe) kontinuierlich verbessert. Während wir VCL-ähnliche Steuerelemente und Komponenten hinzufügen, bemühen wir uns, dies auf eine Weise zu tun, die mehr Flexibilität bietet und auch auf Mobilgeräten gut funktioniert. Einige der Funktionen, wie die verbesserte Animationsunterstützung, sind in erster Linie für Mobilgeräte konzipiert. Das Ziel bleibt es, ein Framework für mehrere Geräte und die Möglichkeit eines einzigen Quellcodes für Desktop- und Mobilgeräte anzubieten, gleichzeitig aber auch alles bereitzustellen, was Sie für die Erstellung von reinen Mobil- oder Desktop-Anwendungen benötigen.
Bitte beachten Sie, dass weitere Blogbeiträge mit Listen von Funktionen in anderen RAD Studio-Bibliotheken folgen werden.
