LiveBindings in RAD Studio

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Einführung in RAD Studio


LiveBindings ist eine Datenbindungsfunktion, die in RAD Studio vom VCL- und vom FireMonkey-Framework unterstützt wird .

LiveBindings ist ein ausdrucksbasiertes Framework. Das bedeutet, dass Objekte anhand von Ausdrücken an andere Objekte oder Datenmengenfelder gebunden werden.

Übersicht über LiveBindings

LiveBindings basiert auf relationalen Ausdrücken, den Bindungsausdrücken, die entweder unidirektional oder bidirektional sein können. LiveBindings unterscheidet zwischen Steuerobjekten und Quellobjekten. Über Bindungsausdrücke können beliebige Objekte an beliebige andere Objekte gebunden werden, indem ein Bindungsausdruck mit einer oder mehreren Eigenschaften der Objekte, die verknüpft werden sollen, definiert wird. Sie können beispielsweise ein TEdit-Steuerelement an ein TLabel-Steuerelement binden, damit bei Änderungen des Textes in dem Eingabefeld die Beschriftung des Labels automatisch an den von Ihrem Bindungsausdruck berechneten Wert angepasst wird. Ein weiteres Beispiel ist das Binden eines Schieberegler-Steuerelements an eine Fortschrittsleiste, damit beim Bewegen des Schiebereglers die Fortschrittsanzeige erhöht oder verringert wird.

LBDConnection.png

Auf dieselbe Art und Weise können Sie Verbindungen zu Datenmengenfeldern herstellen, eine oder mehrere Eigenschaften von verschiedenen Objekten ändern usw. Da LiveBindings weitergeleitet werden, können Sie sogar Eigenschaften von Objekten ändern, die mit anderen an ein Steuerobjekt gebundenen Objekten verbunden sind.

Erstellen von LiveBindings

LiveBindings werden hauptsächlich mit dem LiveBindings-Designer erstellt. Dieser Designer kann nur QuickBindings-Komponenten erstellen. Im Graphen werden die Bindungen von anderen Komponenten (wie TBindLink) angezeigt, aber Sie können die Endpunkte nicht wie bei QuickBinding-Komponenten verschieben.

Es gibt eine weitere Möglichkeit derartige Bindungen zu erstellen und zwar mit dem LiveBindings-Experten. Dieser Experte erstellt ebenfalls nur QuickBinding-Komponenten.

Der LiveBindings-Designer verwendet QuickBindings, um diese Art von Bindungen zu erstellen (was auch im Experten wiedergegeben wird):

  • Verknüpfen eines Steuerelements, wie z. B. TEdit, mit einem Feld in einer Datenquelle
  • Verknüpfen eines Steuerelements, wie z. B. TGrid, mit einer Datenquelle
  • Verknüpfen eines Steuerelements, wie z. B. TEdit, mit einer Komponenteneigenschaft (wie z. B. TLabel.Text)
  • Verknüpfen einer Komponenteneigenschaft mit einem Feld in einer Datenquelle

Ein Steuerelement kann nur mit einem Endpunkt verknüpft werden. Wenn ein TEdit-Steuerelement mit einem Feld verknüpft ist und Sie versuchen, das TEdit-Steuerelement mit einer Komponenteneigenschaft zu verknüpfen, wird die Verknüpfung mit dem Feld gelöscht. Auch eine Komponenteneigenschaft kann mit einem Endpunkt verbunden werden. Datenquellen und Daten-Member können mit mehreren Endpunkten verknüpft werden. Ein Feld kann beispielsweise mit einem TEdit und auch mit einem TLabel verknüpft werden. Davon wären zwei Bindungskomponenten betroffen.

Obwohl der LiveBindings-Designer nicht zulässt, dass ein Steuerelement mit zwei verschiedenen Komponenteneigenschaften verknüpft wird, können Sie diesen Effekt durch Verknüpfen des Steuerelements und den Komponenteneigenschaften mit einem Feld erzielen. Mit der Komponente TPrototypeBindSource kann ein Feld für diesen Zweck erstellt werden.

Der Begriff Verknüpfung, der in LiveBindings und der API-Dokumentation verwendet wird, beinhaltet, dass die Bindungen vom Benutzer vorgenommene Änderungen erkennen und automatisch Steuerelemente und Datenquellen als Reaktion auf die Benutzereingabe aktualisieren.

Verwenden von LiveBindings

Sie können LiveBindings in VCL-Formularanwendungen und FireMonkey-Anwendungen mithilfe des LiveBindings-Designers oder des LiveBindings-Experten verwenden. Der Experte wird über den Objektinspektor oder durch Rechtsklicken auf einzelne Komponenten im Formular aufgerufen (dazu muss er aber zuvor im Dialogfeld Tools > Optionen > LiveBindings aktiviert worden sein).

In den Themen Erstellen von LiveBindings, Neue LiveBinding oder LiveBindings-Experte erhalten Sie einen Überblick über das Erstellen von LiveBindings in RAD Studio. Unter Tutorial: Programmgesteuerte Verwendung von LiveBinding finden Sie Anleitungen zum programmgesteuerten Erstellen von LiveBindings, wenn dies aus irgendeinem Grund erforderlich sein sollte.

Verwenden von Auswertungs-Tastenkürzel

Auswertungs-Tastenkürzel sind eine Technik, die von einigen Bindungskomponenten unterstützt wird, wodurch ihre Leistung verbessert wird, wenn Steuerelemente gefüllt werden, die Listen oder tabellierte Daten enthalten, wie Listenansichten, Gitter oder Kombinationsfelder.

Hinweis: Auswertungs-Tastenkürzel können nicht die Leistung der Bindungskomponenten verbessern, die ein FireMonkey-Gitter füllen.

Bindungskomponenten, die Auswertungs-Tastenkürzel unterstützen, verwenden diese normalerweise standardmäßig, weil Auswertungs-Tastenkürzel Bindungsausdrücke, die kein benutzerdefiniertes Format oder keinen Analyseausdruck verwenden, viel schneller auswerten können.

Die Verwendung von Auswertungs-Tastenkürzel verlangt jedoch Bindungskomponenten, um Bindungsausdrücke zuerst zu prüfen, um festzulegen, ob sie benutzerdefinierte Formate oder Analyseausdrücke verwenden. Wenn alle oder die meisten Ihrer Bindungsausdrücke benutzerdefinierte Ausdrücke oder Analyseausdrücke verwenden, kann die zur Ausführung dieser Überprüfung benötigte Ausführung höher sein als die durch Verwendung von Auswertung-Tastenkürzel gespeicherte Ausführung, falls vorhanden. Bindungskomponentenm die Auswertung unterstützen, stellen normalerweise eine boolische Eigenschaft, UseEvalShortcuts, bereit, das Sie auf False setzen können, um Auswertungs-Tastenkürzel zu aktivieren.

Visuelle Komponenten für LiveBindings

Die LiveBindings-Engine ist eine Laufzeitfunktion, aber eine Reihe von visuellen Komponenten ist zur Unterstützung der Erstellung von Live-Bindungen zwischen Komponenten beim Entwurf in der Tool-Palette enthalten. Manchmal können Sie Bindungen auch visuell mit dem LiveBindings-Experten oder dem LiveBindings-Designer erstellen.

In der Tool-Palette befinden sich auf der Registerkarte LiveBindings oder LiveBindings - Verschiedenes die folgenden Komponenten, die Sie per Drag&Drop in ein Formular (VCL oder FireMonkey) ziehen können.

  • LiveBindings
Komponentenlogo Komponentenname Beschreibung
TBindSourceDB.png TBindSourceDB Wird zum Erstellen von Bindungen mit Datenbanken verwendet.
TPrototypeBindSource.png TPrototypeBindSource Stellt eine Datenquelle zum Erstellen von Beispieldaten bereit, mit der Sie beginnen können, wenn Sie nicht bereits über Daten verfügen. Später können Sie diese Datenquelle durch reale Daten ersetzen.
TBindSourceDBX.png TBindSourceDBX Wird zum Erstellen von Bindungen mit Datenbanken mithilfe des DBX-Frameworks verwendet.
TParamsAdapter.png TParamsAdapter Wird für Bindungen von visuellen Steuerelementen mit DBX-Anweisungsparametern verwendet.
TBindNavigator.png TBindNavigator (FMX oder VCL) Wird beim Entwickeln von FMX- oder VCL-Anwendungen zur Iteration durch Datensätze in einer Datenmenge verwendet.
  • LiveBindings - Verschiedenes
Komponentenlogo Komponentenname Beschreibung
TBindingsList.png TBindingsList Wird zur Aufnahme von Bindungslisten verwendet.
TDataGeneratorAdapter.png TDataGeneratorAdapter Ist ein Adapter für Datengeneratoren.
TAdapterBindSource.png TAdapterBindSource Wird für die Arbeit mit Daten verwendet, die nicht in einer Datenbank gespeichert sind. Mit der Adapter-Eigenschaft wird die Datenquelle mit Daten verbunden, die nicht in einer Datenbank gespeichert sind, wie z. B. eine generische Kollektion von Objekten.
  • LiveBindings
Komponentenlogo Komponentenname Beschreibung
TBindSourceDB.png TBindSourceDB Wird zum Erstellen von Bindungen mit Datenbanken verwendet.
TPrototypeBindSource.png TPrototypeBindSource Stellt eine Datenquelle zum Erstellen von Beispieldaten bereit, mit der Sie beginnen können, wenn Sie nicht bereits über Daten verfügen. Später können Sie diese Datenquelle durch reale Daten ersetzen.
TBindNavigator.png TBindNavigator (FMX) Wird beim Entwickeln von FMX-Anwendungen zur Iteration durch Datensätze in einer Datenmenge verwendet.
  • LiveBindings - Verschiedenes
Komponentenlogo Komponentenname Beschreibung
TBindingsList.png TBindingsList Wird zur Aufnahme von Bindungslisten verwendet.
TDataGeneratorAdapter.png TDataGeneratorAdapter Ist ein Adapter für Datengeneratoren.
TAdapterBindSource.png TAdapterBindSource Wird für die Arbeit mit Daten verwendet, die nicht in einer Datenbank gespeichert sind. Mit der Adapter-Eigenschaft wird die Datenquelle mit Daten verbunden, die nicht in einer Datenbank gespeichert sind, wie z. B. eine generische Kollektion von Objekten.
Tipp: Wenn Sie mit dem LiveBindings-Designer Live-Bindungen zwischen Komponenten erstellen, wird die entsprechende LiveBindings-Komponente (TBindingsList) automatisch auf dem Formular platziert. Diese Komponente enthält eine Liste aller in Ihrer Anwendung verfügbaren Bindungen. Weitere Informationen über Bindungslisten finden Sie im Thema Bindungslisten.

Beispiele für LiveBindings

Es gibt eine Reihe von LiveBindings-Beispielanwendungen, die zusammen mit RAD Studio ausgeliefert werden. Sie finden diese Beispiele durch Auswählen von Start | Programme | Embarcadero RAD Studio Athens | Beispiele. Der betreffende Hauptordner heißt Object Pascal\LiveBinding. Es gibt ein anderes LiveBindings-Beispiel im Ordner Object Pascal\FireMonkey Desktop\ListCollections, das in FMX.ListCollections (Beispiel) beschrieben wird. Diese Beispiele sind in der folgenden Tabelle unterteilt nach Kategorien (FMX oder VCL) aufgeführt. Einige der Beispielanwendungen sind für FMX und die VCL verfügbar, andere nur für eine der beiden Kategorien.

Es gibt eine Reihe von LiveBindings-Beispielanwendungen, die zusammen mit RAD Studio ausgeliefert werden. Sie finden diese Beispiele durch Auswählen von Start | Programme | Embarcadero RAD Studio Athens | Beispiele (der betreffende Ordner heißt LiveBinding). Die Hauptprojektgruppe für alle LiveBindings-Beispiele hat den Namen BindSamplesGroup.groupproj.

Tipp: Informationen zur Aktualisierung des Verzeichnisses "Samples" auf die neueste SVN-Version finden Sie im Hilfethema Beispiel.

FMX-LiveBindings-Beispiele VCL-LiveBindings-Beispiele
BindGridLinkFMXProject BindGridLinkVCLProject
BindLinkFMXProject BindLinkVCLProject
N/V OneOfEachBindCompVCL
ListCollectionsSampleProject N/V
FireMonkey-LiveBindings-Beispiele
BindComponentsExprProject
BindDBExprSampleProject
BindExpressionSampleProject
BindGridLinkFMXProject
BindLinkFMXProject
BindLinkFMXProject
BindListFMXProject

In diesen Beispielen wird die Erstellung fortgeschrittener Anwendungen mit LiveBindings detailliert gezeigt.

Der Quelltext der LiveBindings-Beispiele in Ihrer Produktinstallation befindet sich in einem öffentlichen Subversion-Repository auf .

API-Referenz zu LiveBindings

Die folgenden Units sind Teil der LiveBindings-Engine. Die Dokumentation in den entsprechenden Hilfethemen enthält Informationen über die Verwendung der LiveBindings-API.

Unit-Name Inhalt
System.Bindings.CustomScope Benutzerdefinierte gültigkeitsbereichsbezogene Klassen
System.Bindings.CustomWrapper Benutzerdefinierte Wrapper-bezogene Klassen
System.Bindings.EvalProtocol Von der Engine für Wrapper, Gültigkeitsbereiche und andere interne Strukturen verwendete Interfaces
System.Bindings.Expression Bindungsausdrucksbezogene Klassen
System.Bindings.ExpressionDefaults Standardverhalten für Bindungsausdrücke
System.Bindings.Factories Generatoren für Ausdrücke, Manager und Gültigkeitsbereiche
System.Bindings.Helper Tools für das programmgesteuerte Erstellen von Bindungsausdrücken und Benachrichtigungen
System.Bindings.Manager Bindungsmanagerbezogene Implementierungen
System.Bindings.ManagerDefaults Standardverhalten für Bindungsmanager
System.Bindings.Methods Steuerung von Methoden, die im Skript verwendet werden können
System.Bindings.Outputs Tools zur Steuerung von Ausdrucksausgaben
Data.Bind Enthält Units mit Implementierungen für die LiveBindings-Komponenten

Hinweis: Wenn Sie in C++Builder Konsolenanwendungen mit LiveBindings entwickeln, müssen Sie den C++-Compiler explizit anweisen, die RTTI-Informationen für die Klassen in Ihrem Projekt zu erzeugen. Fügen Sie dazu die Direktive #pragma explicit_rtti methods() am Anfang Ihres Projekts entsprechend der Anleitung im Tutorial "Programmgesteuerte Verwendung von LiveBinding" ein. Weitere Informationen zur Direktive #pragma explicit_rtti methods() finden Sie im Hilfethema #pragma explicit_rtti.

Synchronisieren von Daten mit LiveBindings

Mit LiveBindings in RAD Studio können Sie verschiedene Daten, z. B. ein Listenfeld mit einem String-Gitter, synchronisieren, vorausgesetzt, dass beide dieselben Daten enthalten. Im Thema Synchronisieren von Daten mit LiveBindings finden Sie Informationen zum Synchronisieren von Daten mit den Eigenschaften Synch und * von bestimmten Komponenten im LiveBindings-Designer.

Erstellen von LiveBindings-fähigen Komponenten

Zum Aktivieren eines einfachen Steuerelements, wie TTrackBar, für die Verwendung mit LiveBindings, müssen zwei Voraussetzungen erfüllt sein. Erstens muss das Steuerelement die Observer-Unterstützung implementieren. LiveBindings sind zum Abonnieren von Steuerelementbenachrichtigungen auf Observer angewiesen. Zweitens muss der Steuerwertname (z. B. Position für eine TTrackBar-Komponente) registriert werden. Mit dem Steuerwertnamen können LiveBindings-Komponenten Ausdrücke zum Abrufen und Setzen des Steuerwerts erzeugen.

Weitere Informationen zum Erstellen von Komponenten für LiveBindings finden Sie im Tutorial Erstellen von LiveBindings-fähigen Komponenten.

LiveBindings-Editoren

Die folgenden Editoren in RAD Studio beziehen sich auf LiveBindings:

Siehe auch LiveBindings (Dialogfelder).

LiveBindings in Aktionslisten

Siehe LiveBindings und Aktionslisten.

Siehe auch

Tutorials

Siehe Tutorials zu Datenbanken und LiveBindings.