-
Bind Label et Trackbar
Bonjour,
Je découvre depuis peu le principe de Binding avec Delphi.
J'ai vu avec les exemples qu'il était possible de lier la valeur d'une Trackbar au texte d'un Label.
Or, cet exemple est avec les composants FMX. Quand j'essaye de reproduire l'exemple avec des composants VCL, je parviens à établir la liaison entre les 2 composants. Mais lors de l'éxécution, lorsque je change la position de la Trackbar, le texte du Label ne change pas.
Est-ce que quelqu'un peut m'éclaircir svp ?
J'ai un TBindExprItems entre le Label (ControlComponent) et la Trackbar (SourceComponent) avec une FormatExpression (SourceToControl) de la Position au Caption et une ClearExpression (ControlToSource) du Caption à la Position (mais ça ne doit servir à rien puisque je ne peux pas modifier le texte de mon Label ?)
-
J'ai en fait la réponse à ma question : pour qu'un composant puisse utiliser le LiveBinding, il faut que ce composant implémente le "support d'observation" (comme un Listener si j'ai bien compris). Ce qui n'est pas le cas.
Il faut donc créer sa propre TrackBar qui supportera "l'observation" et enregistrer la propriété que l'on veut observer (sûrement Position pour une TrackBar)
Vous pouvez retrouver un tutoriel pour créer un composant supportant le LiveBinding ici (en anglais) : http://docwiki.embarcadero.com/RADSt...led_Components
J'ai une autre question quand même. J'ai fait aussi un lien entre un Edit et un Label. Le Text de l'Edit est lié au Caption du Label.
Cela marche bien à l'éxécution mais il faut que je quitte le composant Edit pour que le Caption du Label se mette à jour. Comment faire pour que le Caption du Label se mette à jour dès que le Text de l'Edit est modifié ?