Anzeigen: Delphi C++
Anzeigeeinstellungen

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.

Inhaltsverzeichnis

Ü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-Objekt binden, damit bei Änderungen des Textes im Eingabefeld die Beschriftung (TLabel) automatisch an den vom 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 können Bindungen von anderen Komponenten (wie TBindLink) angezeigt werden, 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 auch 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 Klasse 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.

Verwendung von LiveBindings

Sie können LiveBindings in VCL- 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 (aber nur, wenn er im Dialogfeld Tools > Optionen > LiveBindings aktiviert wurde). Es gibt aber auch die schwierigere Möglichkeit, LiveBindings programmgesteuert in Konsolenanwendungen einzusetzen, wenn dies aus bestimmten Gründen erforderlich sein sollte. In den Themen Erstellen von LiveBindings, Neue LiveBinding oder LiveBindings-Experte erhalten Sie einen Überblick über das Erstellen von LiveBindings in RAD Studio.

Visuelle Komponenten für LiveBindings

Die LiveBindings-Engine ist eine Laufzeitfunktion, aber eine Reihe von visuellen Komponenten ist zur Unterstützung der Erstellung von Bindungen zwischen Komponenten beim Entwurf in der Komponentenpalette enthalten. Überwiegend werden Sie jedoch Bindungen visuell mit dem LiveBindings-Experten erstellen.

In der Komponentenpalette befinden sich auf der Registerkarte LiveBindings die folgenden Komponenten, die Sie per Drag&Drop auf einem Formular (VCL oder FMX) platzieren können.

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.
TBindingsList.png TBindingsList Wird zur Aufnahme von Bindungslisten verwendet.
TBindScope.png TBindScope Wird für Bindungen an Komponenten 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.
TBindNavigator.png TBindNavigator (FMX) Wird beim Entwickeln von FMX-Anwendungen zur Iteration durch Datensätze in einer Datenmenge verwendet.
TBindNavigator.png TBindNavigator (VCL) Wird beim Entwickeln von VCL-Anwendungen zur Iteration durch Datensätze in einer Datenmenge verwendet.
Tipp: Wenn Sie mit dem ObjektinspektorLive-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 XE3 | Beispiele. Der betreffende Ordner heißt Delphi\LiveBinding. Diese Beispiele sind in der folgenden Tabelle unterteilt nach Kategorien (FMX oder VCL) aufgeführt. Einige der Beispielanwendungen sind für FMX und VCL verfügbar, andere nur für eine der beiden Kategorien. 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
BindComponentsExprProject N/V
BindDBExprSampleProject N/V
BindExpressionSampleProject N/V
BindGridLinkFMXProject BindGridLinkVCLProject
BindLinkFMXProject BindLinkVCLProject
BindLinkFMXProject BindLinkVCLProject
BindListFMXProject BindListVCLProject
N/V BindListEditVCLProject
N/V BindLookupVCLProject

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 SourceForge:

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 Enthält
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 ein, wie im Tutorial "Programmgesteuerte Verwendung von LiveBinding" gezeigt. Weitere Informationen über die 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 Wertes des Steuerelements erzeugen.

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

Siehe auch

Beispiele

Tutorials

In anderen Sprachen