Home » Tutorials » Object Pascal/RTL » Visual Live Bindings

Visual Live Bindings

Verbindungen mit TForm

Im ersten Beispiel haben wir gesehen, wie man mehrere sichtbare Komponenten miteinander verbinden kann. Das ist auch mit nicht sichtbaren Objekten möglich. Ein Sonderfall ist hierbei das Fenster selbst (TForm). Es handelt sich hierbei nicht um eine sichtbare Komponente, sondern um einen Container. Deshalb ist Form1 (oder wie auch immer das Fenster heißt) nicht im LiveBindings-Designer zu sehen.
Schauen wir uns an, wie man trotzdem Verbindungen anlegen kann.
Dafür erstellen wir eine neue VCL-Anwendung, auf deren Fenster wir eine TEdit- und eine TButton-Komponente platzieren. Ziel ist es, die Eingabe in Edit1 als Fenstertitel von Form1 zu verwenden. Der Button wird nur benötigt, damit der Fokus das Eingabefeld verlassen kann (indem es zu dem Button wandert). Denn erst dann wird das Synchronisieren durchgeführt.
Wäre TForm eine normale sichtbare Komponente, könnten wir im LiveBindings-Designer einen Kasten für Edit1 und einen für Form1 sehen und mit der Maus eine Verbindung zwischen Edit1.Text und Form1.Caption herstellen. Das geht leider nicht. Was tun?
Im ersten Beispiel haben wir gesehen, dass automatisch eine TBindingsList-Komponente auf dem Formular platziert wurde, als wir die Verbindungen angelegt haben. Diese Komponente setzen wir nun manuell auf das Fenster. Sie befindet sich in der Toolpalette unter „LiveBindings – Verschiedenes“.
Ein Rechtsklick auf die Komponente zeigt des Kontextmenü an, in dem wir nun „Neue LiveBinding-Komponente…“ auswählen.
Daraufhin erscheint ein kleines Dialogfenster, in dem sich eine ganze Reihe an Bindungstypen auswählen lassen. Für unseren Fall benötigen wir TLinkControlToProperty – schließlich wollen wir ein Control (das Steuerelement Edit1) mit einer Property (Caption von Form1) verbinden.

livebinding-auswahl.png

oi-linkcontrol.png

Nach dem Bestätigen der Auswahl mit „OK“, lenken wir unseren Blick auf den Objektinspektor. Hier ist nämlich nun das neue Objekt „LinkControlToProperty1“ zu sehen. Und hier müssen wir nun manuell die Verbindung zwischen Edit1 und Form1 eintragen.
In der Eigenschaft „Component“ tragen wir „Form1“ ein – in der Auswahlliste des Eingabefelds ist dieser Eintrag nicht enthalten. Beim Ausfüllen des nächsten Eingabefelds „ComponentProperty“ bekommen wir nun aber schon alle zur Verfügung stehenden Properties von Form1 angeboten und wählen „Caption“ aus. Bei „Control“ schließlich tragen wir „Edit1“ ein.
Nun lohnt sich ein Blick auf den LiveBindings-Designer. Ab sofort ist dort auch ein Kästchen für Form1 zu finden. Wenn nicht: Rechtsklick auf den Hintergrund des Designers und „Designer aktualisieren“ auswählen.

lbdesigner-form.png