Afficher : DelphiC++
Afficher : Win32LinuxOS X
Préférences d'affichage

LiveBindings dans RAD Studio

De RAD Studio XE2.

Remonter à Introduction à RAD Studio


LiveBindings est une fonctionnalité de liaison de données supportée par la VCL et FireMonkey dans RAD Studio. LiveBindings est basée sur les expressions, ce qui signifie qu'elle utilise des expressions pour lier les objets entre eux, par le biais de leurs propriétés.

Sommaire

Présentation de LiveBindings

LiveBindings est basée sur les expressions relationnelles, appelées expressions de liaison, qui peuvent être unidirectionnelles ou bidirectionnelles. LiveBindings est aussi basée sur les objets contrôle et les objets source. Par le biais des expressions de liaison, tout objet source peut être lié à lui-même (il devient à la fois l'objet source et l'objet contrôle) ou à tout autre objet contrôle, en définissant simplement une expression de liaison impliquant une ou plusieurs propriétés des objets que vous voulez lier ensemble. Par exemple, vous pouvez lier un contrôle TEdit à un contrôle TLabel. Ainsi, quand le texte change dans la zone d'édition, l'intitulé du libellé est automatiquement ajusté à la valeur évaluée par votre expression de liaison. Un autre exemple est la liaison d'un contrôle de suivi à une barre de progression de telle sorte que la progression s'élève ou s'abaisse au fur et à mesure que vous déplacez la barre de suivi.

De la même manière, vous pouvez établir une connexion aux bases de données, modifier une ou plusieurs propriétés de différents objets, et ainsi de suite. Etant donné que la fonctionnalité LiveBindings se propage, vous pouvez même modifier les propriétés des objets connectés aux autres objets qui sont liés à un objet contrôle.

Usage de LiveBindings

Vous pouvez utiliser LiveBindings dans les applications VCL et FMX par le biais de l'inspecteur d'objets et des composants visuels utilisés par LiveBindings. Toutefois, il est possible d'utiliser LiveBindings par programme dans les applications console.

Les tutoriels suivants montrent l'essentiel de l'utilisation de LiveBindings :

La fonctionnalité LiveBindings peut être managée ou non managée. Les liaisons managées sont automatiquement évaluées quand un objet ou une propriété de l'expression d'entrée est modifié. Par exemple, si l'expression d'entrée référence la propriété Text d'un composant zone d'édition appelé Edit1, la liaison sera évaluée quand le moteur d'expression est informé d'un changement apporté à Edit1. TBindingList.Notify est appelé pour notifier le moteur d'expression. Le premier paramètre de Notify() est l'objet (dans ce cas Edit1) et le second paramètre est la propriété affectée. Le paramètre de propriété peut être vide, afin que toutes les liaisons qui référencent l'objet soient évaluées.

RAD Studio n'a pas de système de notification qui informe le moteur d'expression de toute modification d'objet ou de propriété. Dans les applications exemple, Notify est appelée depuis les gestionnaires d'événements. Typiquement, le paramètre Sender du gestionnaire d'événements est utilisé pour appeler BindingsList1.Notify(Sender, '');. De cette façon, vous pouvez utiliser un gestionnaire d'événements pour gérer les notifications de nombreux contrôles. L'application exemple SynchControlsSampleProject (aussi listée dans le tableau ci-dessous) illustre la façon dont le notificateur est implémenté.

TBindExpression et TBindExprItems sont les composants LiveBindings qui supportent les liaisons managées. Définissez la propriété Managed. Ces deux composants ont aussi une autre propriété qui affecte les notifications. Quand la propriété NotifyOutputs vaut True, le moteur d'expression enverra automatiquement une notification à une propriété ou un objet de sortie qui est modifié quand une liaison est évaluée.

Aucun des autres composants de liaison n'utilise de liaisons managées. Ils utilisent des liaisons non managées, qui sont toujours évaluées explicitement.

Les composants TBindLink, TBindListLink et TBindGridLink et les composants étroitement associés FireMonkey TBindDB*Link lie des données telles qu'un champ TDataSet aux contrôles tels que TEdit. Plutôt que de compter sur le graphe de dépendance des moteurs d'expressions pour garder les contrôles et les données en synchronisation, ces composants écoutent les notifications de la source de données et les notifications des contrôles (en utilisant le nouvel API TObserver). Le système est une réorganisation de la conception des contrôles orientés VCL DB, qui fait plus que conserver simplement les deux propriétés en synchronisation. Afin qu'un contrôle fonctionne avec ces composants et supporte l'entrée de données, il doit implémenter l'API TObserver. Les contrôles en lecture seule tels que TLabel n'ont pas besoin de supporter l'API TObserver. Puisque TBindLink a été conçu pour fonctionner comme les contrôles orientés VCL DB, il s'allie bien avec les fiches qui utilisent les contrôles orientés VCL DB, et a l'avantage de supporter les expressions complexes et les contrôles VCL standard.

TBindPosition est un autre composant qui écoute les notifications des contrôles en utilisant l'API TObserver. Ce composant est utilisé avec des composants ayant une position telle que TListBox, Vcl.StdCtrls.TScrollBar ou TTracker. Voir l'exemple BindLookupVLCProject pour voir comment TBindPosition peut être utilisé.

Deux autres composants utilisent les liaisons non managées. TBindList et TBindGridList sont utilisés pour remplir une liste ou une grille. Il est possible que deux composants de liaison soient utilisés ensemble sur le même contrôle. Ainsi, par exemple, un composant TBindList et un composant TBindDBList peuvent être utilisés ensemble pour remplir un TListBox qui peut modifier un champ TDataSet.

Exemples LiveBindings

Un certain nombre d'applications exemple LiveBindings sont livrées avec RAD Studio. Vous pouvez les trouver en cliquant sur Démarrer | Tous les programmes | Embarcadero RAD Studio XE2 | Exemples. Le dossier concerné est Delphi\LiveBinding. Ces exemples sont listés dans le tableau suivant, divisés par leur catégorie correspondante (FMX ou VCL). Certaines applications exemple sont disponibles pour FMX et VCL, tandis que d'autres sont disponibles pour une seule de ces deux catégories. Le groupe de projets principal pour tous les exemples LiveBindings est appelé BindSamplesGroup.groupproj.

Tip: Pour des informations concernant le moyen de mise à jour du répertoire Exemples à la dernière version SVN, veuillez consulter la rubrique d'aide Sample.
Exemples LiveBindings FMX Exemples LiveBindings VCL
BindComponentsExprProject N/A
BindDBExprSampleProject N/A
BindExpressionSampleProject N/A
SynchControlsSampleProject N/A
BindGridLinkFMXProject BindGridLinkVCLProject
BindLinkFMXProject BindLinkVCLProject
BindLinkFMXProject BindLinkVCLProject
BindListFMXProject BindListVCLProject
N/A BindListEditVCLProject
N/A BindLookupVCLProject

Ces exemples présentent de façon détaillée comment construire des applications améliorées en utilisant LiveBindings.

Le source des exemples LiveBindings de l'installation de votre produit est archivé dans un référentiel Subversion public résidant sur SourceForge :

Composants visuels LiveBindings

Le moteur LiveBindings est une fonctionnalité d'exécution, mais un certain nombre de composants visuels sont présents dans la palette de composants, afin de vous aider à créer des liaisons dynamiques entre les composants au moment de la conception.

Si vous naviguez dans la palette de composants, vous trouverez dans l'onglet LiveBindings les composants suivants que vous pouvez faire glisser et déposer sur une fiche (VCL ou FMX) :

Conseil : Quand vous utilisez l'inspecteur d'objets pour créer des liaisons dynamiques entre les composants, le composant LiveBindings approprié (TBindingsList) est automatiquement placé sur la fiche. Ce composant contient la liste de toutes les liaisons disponibles dans votre application. Pour de plus amples informations sur les listes de liaisons, voir la rubrique Listes de liaisons.

Référence API LiveBindings

Les unités suivantes font partie du moteur LiveBindings. La documentation de leurs rubriques d'aide appropriées contient des informations concernant l'usage de l'API LiveBindings.

Nom d'unité Contient
System.Bindings.CustomScope Classes associées aux portées personnalisées
System.Bindings.CustomWrapper Classes associées aux wrappers personnalisés
System.Bindings.EvalProtocol Interfaces utilisées par le moteur pour les wrappers, les portées et les autres structures internes
System.Bindings.Expression Classes associées aux expressions de liaison
System.Bindings.ExpressionDefaults Comportement par défaut pour les expressions de liaison
System.Bindings.Factories Fabriques pour les expressions, les gestionnaires et les portées
System.Bindings.Helper Outils de création par programme des expressions de liaison et de notifications
System.Bindings.Manager Implémentations associées aux gestionnaires de liaisons
System.Bindings.ManagerDefaults Comportement par défaut pour les gestionnaires de liaisons
System.Bindings.Methods Contrôle des méthodes qui peuvent être utilisées dans le script
System.Bindings.Outputs Outils pour le contrôle des sorties d'expressions
Conseil : Lors de l'utilisation de C++Builder pour développer des applications console utilisant LiveBindings, vous devez indiquer explicitement au compilateur C++ de générer les informations RTTI pour les classes de votre projet. Pour ce faire, ajoutez la directive #pragma explicit_rtti methods() au début de votre projet, comme illustré dans le tutoriel Utilisation de LiveBinding par programme. Pour de plus amples informations concernant la directive #pragma explicit_rtti methods(), reportez-vous à la rubrique d'aide Pragma explicit rtti.

Voir aussi

Tutoriels

Versions précédentes
Autres langues