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

Concepteur LiveBindings XE3 : lier un champ à une liste de recherche

Publié le 17 octobre 2012

Par Evaris NGOUZOSite personnel

 

Ceci est la traduction du en billet de Jim Tierney sur le LiveBindings visuel avec XE3 portant sur la liaison d'une liste de rechercher à une source de données

       Version PDF   Version hors-ligne   Version eBooks
Viadeo Twitter Facebook Share on Google+        



I. Introduction
II. Création de l'application


I. Introduction

Une liste de recherche est utilisée lorsque l'on désire présenter à l'utilisateur des données plus significatives par rapport aux données effectivement manipulées. Une liste de recherche remplit donc un contrôle de liste avec des "données d'affichage", en lieu et place des "données réelles".

Nous pouvons configurer deux composant de type TPrototypeBindSource afin de simuler une situation faisant appel à une liste de recherche. Le processus qui suit diffère de l'article précédent par l'usage du champ "Colors" en plus du champ "ColorsName". Le champ "Colors" contient la représentation numérique d'une couleur.


II. Création de l'application

Création de la source de données (DataSource).

  1. Créer une nouvelle application VCL
  2. Déposer un composant TPrototypeBindSource sur le formulaire
  3. Dans l'inspecteur d'objets, définir la propriété RecordCount du composant à 10
  4. Ajouter un champ *Colors* au composant
Création de la source de données de remplisage de la liste (FillDataSource)

  1. Déposer un second TPrototypeBindSource sur le formulaire
  2. Dans l'inspecteur d'objets, renommer celui-ci en "PrototypeBindSourceFill"
  3. Ajouter les champs *Colors* et *ColorsNames* au composant
  4. Décocher "Shuffle" et "Repeat" afin de générer une liste ordonnée de valeurs uniques
Déposer ensuite un TListBox sur le formulaire

Afficher le concepteur LiveBinding à l'aide de la commande de menu "Voir/Concepteur LiveBindings"

Pour plus de simplicité, renommer les deux champs du composant PrototypeBindSourceFill en AColor et AColorName. Pour y arriver, sélectionner tour à tour les deux champs dans le concepteur LiveBindings et utiliser l'inspecteur d'objets pour changer leur nom.

Dans l'optique de créer une liste de recherche, la "source de données de remplissage" doit fournir un "ValueField" et un "DisplayField" qui sont respectivement les champs utilisés comme valeur manipulée et valeur affichée.
Ces deux champs sont donc utilisés pour construire un dictionnaire servant à faire correspondre une valeur réelle à une valeur d'affichage.
Dans notre exemple, AColor est le "champ valeur" et AColorName est le "champ affiché". Une valeur numérique de couleur dans le champ AColor peut alors être utilisée pour rechercher le nom de la couleur correspondante dans le champ ColorName.

Dans le concepteur LiveBindings, réaliser les trois connections suivantes afin de créer une liste de recherche :

  1. Lier le champ "Color1" du composant PrototypeBindSource1 à la propriété "SelectedText" du composant ListBox1
  2. Lier le champ "AColorName" du composant PrototypeBindSourceFill à la propriété "ItemText" du composant ListBox1
  3. Lier le champ "AColor" du composant PrototypeBindSourceFill à la propriété "LookupData" du composant ListBox1
Si tout est lié correctement, l'on constate que la ListBox1 est remplie dans le concepteur VCL.

L'élement de liste "Darkgreen" est sélectionné parce que la valeur du champ "Colors1" dans le premier enregistrement du composant PrototypeBindSource1 est associée à la valeur "Darkgreen" dans le composant PrototypeBindSourceFill.

Ajouter un navigateur en faisant un clic droit sur le composant PrototypeBindSource1 et en choisissant l'élément de menu "Ajouter un navigateur".
Notre mini application est maintenant prête à l'exécution.

Remarquez que l'on a également ajouté un composant TLabeledEdit et un TShape.

Le composant TLabeledEdit permet d'afficher la valeur du champ AColor du PrototypeBindSource1 en tant que nombre.

Le composant TShape permet quant à lui de visualier la valeur du même champ sous forme de couleur.

Voici un aperçu final de notre concepteur LiveBinding.



               Version PDF   Version hors-ligne   Version eBooks

Valid XHTML 1.0 TransitionalValid CSS!