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 :
- Tutoriel : Utilisation de LiveBinding dans les applications VCL (illustre la liaison de propriétés d'application VCL)
- Tutoriel : Utilisation de LiveBinding pour créer une application sans code (illustre une application FireMonkey HD construite avec LiveBindings)
- Tutoriel : Utilisation de LiveBinding par programme (seulement approprié pour les applications console ou l'édition manuelle des expressions).
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) :
- TBindingsList pour contenir les listes de liaisons
- TBindScope pour les liaisons aux composants
- TBindScopeDB pour les liaisons aux bases de données
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
- Création de LiveBindings
- La boîte de dialogue Nouveau LiveBinding...
- Boîte de dialogue Méthodes LiveBindings
- La boîte de dialogue Convertisseurs de sortie
- La boîte de dialogue Résultat d'expression LiveBindings
- La boîte de dialogue Nouveau lien DB
- La boîte de dialogue Editeur de colonnes LiveBindings
- Listes de liaisons
- Editeur d'expressions de liaison
- Inspecteur d'objets
- Nouvelle application console
- Application Fiches VCL
- Application FireMonkey HD
- Référence des bibliothèques VCL-FMX-RTL
Tutoriels
- Tutoriel : Utilisation de LiveBinding dans les applications VCL
- Tutoriel : Utilisation de LiveBinding pour créer une application FireMonkey sans code
- Tutoriel : Utilisation de LiveBinding par programme