LiveBindings dans RAD Studio
Remonter à Introduction à RAD Studio
LiveBindings est une fonctionnalité de liaison de données supportée par les frameworks VCL et FireMonkey dans RAD Studio.
LiveBindings est un framework basé sur des expressions, ce qui signifie qu'il utilise des expressions de liaison pour lier des objets à d'autres objets, ou à des champs d'ensemble de données.
Sommaire
- 1 Présentation de LiveBindings
- 2 Création de LiveBindings
- 3 Usage de LiveBindings
- 4 Composants visuels LiveBindings
- 5 Exemples LiveBindings
- 6 Référence API LiveBindings
- 7 Synchronisation des données via LiveBindings
- 8 Création de composants activés LiveBindings
- 9 Editeurs LiveBindings
- 10 LiveBindings dans les listes d'actions
- 11 Voir aussi
Présentation de LiveBindings
LiveBindings est basé sur des expressions relationnelles, appelées expressions de liaison, qui peuvent être unidirectionnelles ou bidirectionnelles. LiveBindings est aussi basé sur les objets contrôle et les objets source. Par le biais des expressions de liaison, tout objet peut être lié à un autre objet, simplement en définissant 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 barre de suivi à une barre de progression afin 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 façon, vous pouvez établir la connexion à des champs d'ensemble de données, modifier une ou plusieurs propriétés d'objets différents, 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.
Création de LiveBindings
La principale méthode pour créer des liaisons consiste à utiliser le Concepteur LiveBindings. Le Concepteur ne peut créer que des composants à liaison rapide (QuickBinding). Le graphe présente des liaisons d'autres composants (telles que TBindLink), mais vous ne pouvez pas déplacer les points de fin comme c'est le cas avec les composants à liaison rapide.
Il existe une seconde méthode pour créer de telles liaisons : elle consiste à utiliser l'expert LiveBindings. Il ne crée aussi que des composants à liaison rapide.
Le Concepteur LiveBindings utilise les QuickBindings (ou liaisons rapides) pour créer ce type de liaison (ce qui se reflète aussi dans l'expert) :
- Lier un contrôle tel que TEdit à un champ d'une source de données
- Lier un contrôle tel que TEdit à une source de données
- Lier un contrôle tel que TEdit à une propriété de composant (comme TLabel.Text)
- Lier une propriété de composant à un champ d'une source de données
Un contrôle ne peut être lié qu'à un seul point de fin. Ainsi, si un TEdit est lié à un champ et que vous essayez de lier le TEdit à une propriété de composant, le lien au champ sera supprimé. Une propriété de composant ne peut aussi être liée qu'à un seul point de fin. Les sources de données et leurs membres peuvent être liés à plusieurs points de fin. Par exemple, un champ peut être lié à un TEdit et aussi à un TLabel. Deux composants de liaison seront alors impliqués.
Même si le Concepteur LiveBindings ne permet pas à un contrôle d'être lié à deux autres propriétés de composant, il est possible d'obtenir cet effet en liant le contrôle et les propriétés de composant à un champ unique. Vous pouvez utiliser le composant TPrototypeBindSource pour créer un champ à cet effet.
Le terme Lien utilisé dans LiveBindings et la documentation API indique que les liaisons reconnaissent les changements effectués par l'utilisateur et mettent à jour automatiquement les contrôles et les sources de données en réponse à l'entrée utilisateur.
Usage de LiveBindings
Vous pouvez utiliser LiveBindings dans les applications Fiches VCL et les applications FireMonkey par le biais du Concepteur LiveBindings ou de l'expert LiveBindings. Notez que vous pouvez invoquer l'expert via l'inspecteur d'objets ou en cliquant avec le bouton droit sur des composants placés sur la fiche (mais seulement si l'expert a été précédemment activé dans la boîte de dialogue Outils > Options > LiveBindings).
Reportez-vous à la rubrique Création de LiveBindings, Nouveau LiveBinding ou Expert LiveBindings pour une présentation de la procédure à utiliser pour créer des LiveBindings dans RAD Studio. Voir aussi Tutoriel : Utilisation de LiveBindings par programmation pour des instructions sur la création de LiveBindings par programmation, si pour une raison quelconque vous devez le faire.
- Tutoriels sur la façon d'utiliser LiveBindings dans les applications VCL ou FireMonkey avec le Concepteur LiveBindings :
- Méthode rapide (QuickBindings) de création de LiveBindings de façon transparente avec l'expert LiveBindings :
- Tutoriels sur la façon d'utiliser LiveBindings dans les applications VCL ou FireMonkey avec l'expert LiveBindings :
- Tutoriel : Utilisation de LiveBindings dans les applications FireMonkey (illustre par l'exemple la liaison de propriétés d'une application vide)
- Tutoriel : Utilisation de LiveBindings par programmation (seulement approprié pour les applications console ou l'édition manuelle des expressions)
- Tutoriel : Utilisation de LiveBindings pour créer une application sans code ((illustre par l'exemple une application vide construite avec LiveBindings)
- Tutoriel : Utilisation de LiveBindings dans les applications VCL (illustre par l'exemple la liaison de propriétés d'une application VCL)
- Rubriques sur l'utilisation des fonctionnalités spécifiques de LiveBindings :
Utilisation des raccourcis d'évaluation
Les raccourcis d'évaluation représentent une technique prise en charge par certains composants de liaison qui améliore leurs performances lors du remplissement des contrôles contenant des listes ou des données tabulaires, telles que des vues de listes, des grilles ou des zones de liste déroulante.
- Remarque : Les raccourcis d'évaluation ne peuvent pas améliorer les performances des composants de liaison qui remplissent une grille FireMonkey.
Les composants de liaison qui prennent en charge les raccourcis d'évaluation les utilisent généralement par défaut, puisque les raccourcis d'évaluation peuvent évaluer bien plus rapidement les expressions de liaison qui n'utilisent pas des expressions d'analyse ou de format personnalisées.
Cependant, l'utilisation des raccourcis d'évaluation requiert que les composants de liaison vérifient premièrement les expressions de liaison pour déterminer si celles-ci utilisent des expressions d'analyse ou de format personnalisées. Si toutes ou la plupart de vos expressions d'analyse utilisent des expressions d'analyse ou de format personnalisées, le traitement requis pour effectuer cette vérification peut être plus intense que le traitement enregistré en utilisant les raccourcis d'évaluation, s'il y en a. Les composants de liaison qui prennent en charge l'évaluation fournissent généralement une propriété booléenne, UseEvalShortcuts
, que vous pouvez définir sur False
pour désactiver les raccourcis d'évaluation.
Composants visuels LiveBindings
Le moteur LiveBindings est une fonctionnalité runtime, mais un certain nombre de composants visuels sont présents dans la palette d'outils, afin de vous aider à créer des liaisons dynamiques entre les composants au moment de la conception. Parfois, vous pouvez aussi créer des liaisons visuellement, à l'aide de l'expert LiveBindings ou du Concepteur LiveBindings.
Si vous naviguez dans la palette d'outils, vous trouverez dans les onglets LiveBindings ou Divers LiveBindings les composants suivants que vous pouvez glisser et déposer sur une fiche (VCL ou FireMonkey).
- LiveBindings
Logo du composant | Nom du composant | Description |
TBindSourceDB | Est utilisé pour la création de liaisons aux bases de données. | |
TPrototypeBindSource | Fournit une source de données pour la génération de données exemple que vous pouvez utiliser pour démarrer en l'absence de vos propres données. Vous pourrez par la suite remplacer cette source de données par des données réelles. | |
TBindSourceDBX | Est utilisé pour la création de liaisons aux bases de données en utilisant le framework DBX. | |
TParamsAdapter | Est utilisé pour lier les contrôles visuels aux paramètres de commande DBX. | |
TBindNavigator (FMX ou VCL) | Est utilisé pour parcourir en boucle les enregistrements d'un ensemble de données lors du développement d'applications FMX ou VCL. |
- Divers LiveBindings
Logo du composant | Nom du composant | Description |
TBindingsList | Est utilisé pour contenir les listes de liaisons. | |
TDataGeneratorAdapter | Est un adaptateur pour les générateurs de données. | |
TAdapterBindSource | Est utilisé pour manipuler des données non issues d'une base de données. La propriété d'adaptateur est utilisée pour connecter la source de données aux données non issues d'une base de données, telles qu'une collection générique d'objets. |
- 'LiveBindings
Logo du composant | Nom du composant | Description |
TBindSourceDB | Est utilisé pour la création de liaisons aux bases de données. | |
TPrototypeBindSource | Fournit une source de données pour la génération de données exemple que vous pouvez utiliser pour démarrer en l'absence de vos propres données. Vous pourrez par la suite remplacer cette source de données par des données réelles. | |
TBindNavigator (FMX) | Est utilisé pour parcourir en boucle les enregistrements d'un ensemble de données lors du développement d'applications FMX |
- Divers LiveBindings
Logo du composant | Nom du composant | Description |
TBindingsList | Est utilisé pour contenir les listes de liaisons. | |
TDataGeneratorAdapter | Est un adaptateur pour les générateurs de données. | |
TAdapterBindSource | Est utilisé pour manipuler des données non issues d'une base de données. La propriété d'adaptateur est utilisée pour connecter la source de données aux données non issues d'une base de données, telles qu'une collection générique d'objets. |
- Conseil : Quand vous utilisez le Concepteur LiveBindings 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. Voir la rubrique Listes de liaisons pour de plus amples informations sur les listes de liaisons.
Exemples LiveBindings
Un certain nombre d'applications exemple LiveBindings sont livrées avec RAD Studio. Vous pouvez les trouver en cliquant sur Démarrer | Programmes | Embarcadero RAD Studio 10.2 Tokyo | Exemples. Le dossier concerné est Object Pascal\LiveBinding. Il existe un autre exemple LiveBinding dans le dossier Object Pascal\FireMonkey Desktop\ListCollections et qui est décrit dans Exemple FMX.ListCollections. Ces exemples sont listés dans le tableau suivant, classés selon la 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.
Un certain nombre d'applications exemple sont livrées avec RAD Studio. Vous pouvez les trouver en cliquant sur Démarrer | Programmes | Embarcadero RAD Studio 10.2 Tokyo | Exemples (le dossier concerné est LiveBinding). Le groupe de projets principal pour tous les exemples LiveBindings est appelé BindSamplesGroup.groupproj.
Conseil : Pour obtenir des informations sur la procédure de mise à jour du répertoire Samples sur la version SVN la plus récente, reportez-vous à la rubrique d'aide Exemple.
Exemples LiveBindings FMX | Exemples LiveBindings VCL |
BindGridLinkFMXProject | BindGridLinkVCLProject |
BindLinkFMXProject | BindLinkVCLProject |
N/A | OneOfEachBindCompVCL |
ListCollectionsSampleProject | N/A |
Exemples LiveBindings FireMonkey |
BindComponentsExprProject |
BindDBExprSampleProject |
BindExpressionSampleProject |
BindGridLinkFMXProject |
BindLinkFMXProject |
BindLinkFMXProject |
BindListFMXProject |
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 :
Référence API LiveBindings
Les unités suivantes font partie du moteur LiveBindings. La documentation des 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 programmation 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 |
Data.Bind | Unités avec les implémentations des composants LiveBindings |
Conseil : Lorsque vous utilisez 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 LiveBindings par programmation. Pour plus d'informations concernant la directive#pragma explicit_rtti methods()
, reportez-vous à la rubrique d'aide #pragma explicit_rtti.
Synchronisation des données via LiveBindings
L'utilisation de LiveBindings dans RAD Studio vous permet de synchroniser différentes données, comme une zone de liste avec une grille chaîne, pour autant qu'elles contiennent les mêmes données. Reportez-vous à la rubrique Synchronisation des données via LiveBindings pour découvrir comment synchroniser des données via les propriétés Synch et * de certains composants depuis le Concepteur LiveBindings.
Création de composants activés LiveBindings
Les deux exigences suivantes doivent être remplies pour activer un simple contrôle comme TTrackBar pour une utilisation avec LiveBindings. La première exigence est que le contrôle doit implémenter le support de l'observateur. LiveBindings dépend des observateurs pour l'abonnement aux notifications des contrôles. La deuxième exigence est de recenser le nom de la valeur du contrôle (par exemple : Position
pour un composant TTrackBar). Le nom de la valeur du contrôle est utilisé par les composants LiveBindings pour générer des expressions qui obtiennent et définissent la valeur du contrôle.
Pour plus d'informations sur la création de composants activés LiveBindings, reportez-vous au tutoriel Création de composants activés LiveBindings.
Editeurs LiveBindings
Les éditeurs suivants de RAD Studio sont relatifs à LiveBindings :
Voir aussi Boîtes de dialogue LiveBindings.
LiveBindings dans les listes d'actions
Voir LiveBindings et les listes d'actions.