Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
CodeDelphiNouvelles

Gestion des expressions Delphi via un composant de liste de liaisons

bindingslist_03

Après avoir examiné les expressions de liaison et la manière dont elles peuvent être liées aux composants, passons au composant destiné à gérer les expressions de liaison.


Dans des articles de blog r√©cents, j’ai couvert le¬†moteur d’expression de base¬†RTL de Delphi¬†¬†¬†et la¬†¬†liaison de composants¬†.¬†Nous pouvons maintenant franchir une √©tape suppl√©mentaire et examiner un composant cl√© pour l’ensemble de l’architecture des liaisons, appel√© BindingsList.¬†Une liste de liaisons est une collection de diff√©rents types d’expressions de liaisons, g√©r√©es dans les concepteurs.

En d’autres termes, les expressions et les liaisons de composants que j’ai d√©finies dans le code source du dernier article de blog peuvent √™tre enti√®rement d√©finies dans les concepteurs (et les assistants) du composant BindingsList.¬†D√©posez simplement un composant de ce type dans un formulaire plus quelques composants visuels (dans mon exemple, deux modifications, une modification de rotation et une barre de progression – voir l’image ci-dessous).

bindingslist_01-6295888

Le composant BindingsList poss√®de un concepteur qui permet de d√©finir une collection de liaisons. Chaque liaison peut √™tre s√©lectionn√©e √† l’aide de l’une des nombreuses options disponibles (beaucoup trop nombreuses pour √™tre explor√©es dans cet article et principalement ax√©es sur les liaisons de source de donn√©es et de champ de donn√©es). Les deux options de base que je vais utiliser ici sont TBindExpression et TBindExprItems.

bindingslist_02-7282443

Apr√®s avoir s√©lectionn√© l’une de ces liaisons, disons une TBindExpression, vous devez interagir avec deux surfaces de conception diff√©rentes pour travailler sur l’expression : d’un c√īt√©, vous pouvez configurer les propri√©t√©s de l’expression dans l’inspecteur d’objets, comme le SourceComponent et le ControlComponent (le terme utilis√© pour d√©signer le contr√īle cible) et les expressions associ√©es¬†; d’autre part, en double-cliquant sur l’expression dans l’√©diteur BindingList, vous pouvez nous ouvrir un concepteur d’expressions sp√©cial, qui √† son tour dispose d’√©diteurs et de visualiseurs d’√©l√©ments suppl√©mentaires¬†:

bindingslist_03-6620061

Dans l’image ci-dessus, vous pouvez voir que j’ai connect√© l’expression √† un contr√īle source et cible, mais je n’ai toujours pas d√©fini d’expression.¬†Cela peut √™tre aussi simple qu’un nom de propri√©t√© unique ou une combinaison plus complexe de valeurs et d’expressions et peut √™tre configur√© dans les¬†¬†propri√©t√©s d’¬†expressions de l’¬†inspecteur d’¬†¬†objets pour la liaison ou sur le concepteur sp√©cial affich√© ci-dessus.¬†Le concepteur offre √©galement la possibilit√© d’√©valuer et d’inspecter diff√©rentes expressions.

Pour en revenir aux expressions, nous pouvons simplement utiliser Value et Position pour le Spin Edit et la Progress Bar, respectivement.¬†Notez que l’expression de liaison a une direction (par d√©faut, la source √† contr√īler) qui peut √™tre invers√©e ou peut √©galement √™tre bidirectionnelle.

J’ai utilis√© une expression bidirectionnelle pour les deux zones d’√©dition, de sorte que la saisie de l’une d’entre elles copie le contenu dans l’autre.¬†Dans ce deuxi√®me exemple, j’ai utilis√© une liaison TBindExprItems (mais une expression r√©guli√®re aurait suffi).¬†Il s’agit d’une liaison plus complexe, dans laquelle vous sp√©cifiez la source et le contr√īle (comme ci-dessus) mais d√©finissez une collection d’expressions claires et de format, qui peuvent impliquer plusieurs propri√©t√©s des contr√īles.¬†Dans cet exemple, le mappage est Text to Text (bidirectionnel) comme vous pouvez le voir ci-dessous¬†:

bindingslist_04-2550973

Avec tout cela, le seul code Delphi n√©cessaire dans l’application est un appel pour r√©√©valuer les liaisons lorsque la valeur de la source change.¬†Cela se fait facilement en g√©rant les √©v√©nements OnChange des diff√©rents contr√īles et en d√©clenchant une mise √† jour g√©n√©rale des liaisons pour le contr√īle actuel (le¬†¬†Sender¬†):

Voici l’application tr√®s simple en action :

bindingslist_05-6555244

Maintenant, vous vous demandez peut-√™tre o√Ļ finissent tous ces param√®tres de configuration‚Ķ mais comme la plupart des autres configurations de conception dans Delphi, ce n’est pas un noir pour un fichier de formulaire que vous pouvez afficher sous forme de texte (et modifier, si vous savez ce que vous faites) .¬†Vous pouvez √©galement copier le composant depuis le concepteur et le coller sous forme de texte, comme je l’ai fait ici¬†:

C’est tout pour l’instant, m√™me si je me rends compte que j’ai juste effleur√© la surface de l’architecture des fixations.¬†La prochaine √©tape de ces s√©ries sur les expressions et les liaisons est celle des concepteurs de Visual Live Binding, qui s’appuie sur les pi√®ces que nous avons vues jusqu’√† pr√©sent.¬†Je le couvrirai la prochaine fois.

banner_delphi-low-code-wizard_1220x300-2


Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Leave a Reply

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

IN THE ARTICLES