Anzeigen: Delphi C++
Anzeigeeinstellungen

Binden der erstellten Objekte

Aus RAD Studio XE2
Wechseln zu: Navigation, Suche

Nach oben zu Tutorial: Verwendung von LiveBinding in VCL-Anwendungen


Nach Abschluss des vorherigen Schritts können Sie mit dem nächsten Abschnitt fortsetzen, im dem das Binden verschiedener Eigenschaften der Drehfelder an die Eigenschaften des Bildsteuerelements beschrieben wird.

So erstellen Sie eine neue LiveBinding:

  1. Klicken Sie auf das Bildsteuerelement (in diesem Fall Image1), das gleichzeitig die Steuerkomponente ist.
  2. Suchen Sie im Objektinspektor die Eigenschaft LiveBindings. Klicken Sie darauf, und wählen Sie Neue LiveBinding....

    LBVCL3.png

  3. Ein Dialogfeld (Neue LiveBinding) wird geöffnet, in dem Sie den Typ der neuen LiveBinding auswählen können.

    LBVCL4.png

    Wählen Sie TBindExpression aus, und klicken Sie zur Bestätigung Ihrer Auswahl auf OK.
  4. Der neue Bindungsausdruck wurde erstellt, und Sie können nun die Felder für das eigentliche Binden der Quellkomponente (eines der Drehfelder) an die Steuerkomponente (das Bildsteuerelement) definieren.

    LBVCL5.png

    Für diesen Bindungsausdruck ist Folgendes wichtig:
    • Die Eigenschaft AutoActivate – Sie legt fest, dass der Bindungsausdruck zur Laufzeit automatisch aktiviert wird.
    • Die Eigenschaft ControlExpression – Sie legt den Ausdruck fest, mit dem die Bildkomponente gesteuert wird. Setzen Sie diese Eigenschaft auf Top, weil die Eigenschaft Top des Bildsteuerelements beeinflusst werden soll.
    • Die Eigenschaft Managed – Sie legt fest, ob ein Manager Eigentümer des Bindungsausdrucks ist. Setzen Sie Managed auf True.
    • Die Eigenschaft SourceComponent – Sie legt die Komponente fest, die die Quelle der Daten für die Steuerkomponente ist. Setzen Sie diese Eigenschaft auf seTop, weil das Drehfeld seTop die Eigenschaft Top des Bildsteuerelements steuern soll.
    • Die Eigenschaft SourceExpression – Sie legt den Ausdruck fest, der Daten zum Steuern der Bildkomponente bereitstellt. Setzen Sie diese Eigenschaft auf Value, weil die Eigenschaft Value (die den aktuellen Wert des Drehfeldes enthält) die Eigenschaft Value des Bildsteuerelements steuern soll.
  5. Wiederholen Sie diese vier Schritte zum Binden der übrigen drei Drehfelder (seLeft, seWidth und seHeight –Quellkomponenten) an das Bildsteuerelement (Image1 – Steuerkomponente). Ersetzen Sie jeweils die Namen der Drehfelder wie seTop durch seLeft, seWidth oder seHeight und die zugehörigen Eigenschaften wie Top durch Left, Width oder Height.

Wenn Sie das Erstellen der Bindungsausdrücke abgeschlossen haben, werden Sie feststellen, dass dem Formular eine neue Komponente hinzugefügt wurde: BindingsList1. Doppelklicken Sie auf diese Komponente, um das folgende Dialogfeld zu öffnen.

LBVCL6.png

Im Editor für Bindungsausdrücke können Sie alle in Ihrer Anwendung verfügbaren Ausdrücke visuell bearbeiten. Doppelklicken Sie auf einen in der Liste aufgeführten Bindungsausdruck, um ein weiteres Dialogfeld (siehe folgende Abbildung) zu öffnen. In diesem Dialogfeld werden die Parameter des ausgewählten Bindungsausdrucks bearbeitet. Hier können Sie Ihre Bindungsausdrücke genauso wie im Objektinspektor bearbeiten und ändern.

LBVCL7.png

Geben Sie nach Abschluss dieser Schritte einen Benachrichtigungsbefehl an die vorhandenen Bindungen aus. Dazu müssen Sie eine Notifier-Prozedur implementieren, die Sie dem Ereignis OnChange jedes Drehfeldes zuweisen. Das folgende Codefragment zeigt die Prozedur´Notifier.

Fügen Sie diese Deklaration in die Formularklasse unterhalb des published-Abschnitts ein (d.h. direkt nach der Deklaration der Komponenten), damit RTTI-Informationen erzeugt werden können (siehe folgenden Code).

 TMain = class(TForm)
     { other components declarations ... }
     procedure Notifier(Sender: TObject);
     { other declarations }
Fügen Sie für C++Builder den Prototyp der Methode Notifier in den Abschnitt __published der Header-Datei Ihres Hauptformulars ein.
 class TMain : public TForm
 {
 __published:	// IDE-managed Components
 	/* other components declarations ... */
 	void __fastcall Notifier(TObject *Sender);
 	/* other declarations */

Der implementation-Abschnitt

 procedure TMain.Notifier(Sender: TObject);
 begin
   { this line of code notifies the Bindings List component
     that something has changed; the '' parameter says that
     the expression engine should check all properties for
     actual changes }
   BindingsList1.Notify(Sender, '');
 
   { dynamically re-render the image in case Height or Width changes }
   RedrawImage;
 end;
 void __fastcall TMain::Notifier(TObject *Sender)
 {
 	/* this line of code notifies the Bindings List component
 	that something has changed; the "" parameter says that
 	the expression engine should check all properties for
 	actual changes */
 	BindingsList1->Notify(Sender, "");
 
 	/* dynamically re-render the image in case Height or Width changes */
 	RedrawImage();
 }

Nach Implementierung dieser Notifier-Prozedur müssen Sie nun das Ereignis OnChange jedes Drehfeldes an diese Prozedur binden. Wählen Sie alle vier Drehfelder gleichzeitig aus (Umschalt+Linksklick), wechseln Sie in den Objektinspektor, und aktivieren Sie die Registerkarte Ereignisse. Suchen Sie das Ereignis OnChange, und geben Sie Notifier ein.

LBNotifier.png

Ihre Anwendung ist nun für die Ausführung bereit.

Weiter

Zurück

Frühere Versionen
In anderen Sprachen