IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Concepteur LiveBindings XE3 : Liaison de contrôles aux propriétés de composant

Cet article est une traduction du billet de Jim Tierney concernant la liaison de contrôles aux propriétés de composants à l'aide du concepteur LiveBindings.

Article lu   fois.

L'auteur

Profil ProSite personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Introduction

Les contrôles simples peuvent être liés aux propriétés de composants. TEdit est un exemple de contrôle simple. TLabel.Text est un exemple de propriété de composant. Les contrôles peuvent être liés à la plupart des propriétés publiques de tout type de composant sur un formulaire.

II. Liaison des contrôles aux propriétés dans le concepteur LiveBindings

Après qu'un TEdit et un TLabel ont été déposés sur un formulaire FireMonkey, le concepteur LiveBindings représente le TEdit avec un membre « Text » et le TLabel avec également un membre « Text ».

Image non disponible

Le concepteur LiveBindings peut être utilisé pour lier ces deux membres :

Image non disponible

Dans le formulaire, vous constaterez que la valeur du TLabel a été copiée vers le TEdit. Lorsqu'un lien est initialisé, la valeur de la propriété du composant est copiée vers le contrôle afin de donner aux deux membres la même valeur au démarrage. Après l'initialisation, la valeur du contrôle sera copiée vers la propriété du composant à chaque fois que l'utilisateur modifiera la zone d'édition et pressera la touche entrée ou quittera la zone d'édition.

Image non disponible

Dans le concepteur LiveBindings, la ligne reliant les composants représente une liaison de composants. Cliquer sur la ligne afin de sélectionner le composant qu'il représente dans l'inspecteur d'objets.

Image non disponible

La propriété AutoActivate indique à quel moment le lien doit être initialisé lorsque l'application est exécutée. Cette propriété active également la liaison en phase conception.

La propriété InitialiizeControlValue peut être décochée afin de prévenir la valeur de propriété du composant d'être copiée vers le contrôle lorsque le lien est initialisé.

III. Liaisons multiples

Le concepteur LiveBindings peut être utilisé afin de connecter un seul contrôle à plusieurs propriétés de composant.

Image non disponible

IV. Liaisons interdites

LiveBindings ne permet pas de lien entre propriétés de composant, telles que Label1.Text et Button1.Text.

Le concepteur LiveBindings signale cette interdiction de manière visuelle.

Image non disponible

LiveBindings ne permet pas de lien direct entre deux contrôles d'entrée utilisateur, tels que Edit1.Text vers Edit2.Text. Afin d'aboutir au même résultat, lier les deux contrôles à un champ TPrototypeBindSource.

Image non disponible

Les liaisons affichées dans cette image conserveront tous les membres « Text » synchronisés lorsque l'utilisateur modifiera l'une des zones d'édition et appuiera sur la touche « entrée » ou quittera la zone.

La propriété TPrototypeBindSource.RecordCount peut être définie à « 1 » lorsque TProtorypeBindSource est utilisé afin de fournir un champ intermédiaire.

V. Liaison vers d'autres propriétés

Afin de montrer d'autres propriétés de composant dans le concepteur LiveBindings, cliquer « … » afin d'ouvrir la boîte de dialogue « Bindable Members ».

Image non disponible

La boîte de dialogue remplit une liste avec les propriétés retrouvées par scrutation des informations de type du composant. Certaines propriétés sont ignorées parce que leur type, tel que le type ensemble (set), n'est pas supporté par les expressions LiveBindings. Placer une coche sur les propriétés à afficher dans le concepteur LiveBindings.

La liaison à partir d'un contrôle vers « … » est un autre moyen d'avoir d'autres propriétés. À titre d'exemple, faire un glisser-déposer à partir du membre « IsChecked » vers « … » et sélectionner la propriété « WorkWrap ».

Image non disponible

VI. Activation des propriétés de composants au LiveBindings

LiveBindings utilise les RTTI afin de lire et d'écrire les propriétés de composants. Ainsi aucun changement n'est requis pour rendre les propriétés d'un composant liables.

Afin de simplifier la liaison aux propriétés fréquemment utilisées, il existe une méthode d'enregistrement permettant d'indiquer quel membre afficher par défaut dans le concepteur LiveBindings. Par exemple, la méthode RegisterValuePropertyName() est utilisée afin d'enregistrer la propriété « Text » comme étant le membre par défaut d'un TLable FireMonkey, et la propriété « Caption » comme étant le membre par défaut du TLabel VCL. Voir Fmx.Bind.Editors.pas et Bcl.Bind.Editors.pas. RegisterValuePropertyName() se retrouve dans Data.Bind.Components.

VII. Activation de contrôles au LiveBindings

Les contrôles doivent implémenter l'observer ControlValue pour supporter la liaison de propriétés de composants. L'article précédent comporte des informations sur les observers, incluant le code d'un exemple de contrôle appelé TObservableTrackbar. TObservableTrackBar implémente l'observer ControlValue, et ainsi supporte la liaison vers les propriétés de composant. Voici un TObservableTrackBar lié à la propriété Width d'un TShape.

Image non disponible

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+