J'ai créé un petit composant permettant de lier 2 ou plusieurs TListBox pour synchroniser leur défilement.
Ceci représente un groupe, d'où le nom que je lui ai donné: TListBoxGroup.
Bien sûr, plusieurs de ces groupes peuvent cohabiter dans un même programme - il n'y aura pas d'interactions entre les groupes.
Par contre, un TListBox ne peut faire partie que d'un seul groupe.
Un groupe peut avoir plusieurs composants TListBox comme éléments.
Un seul de ces éléments est considéré "maître", c'est celui qui fait défiler tous les autres.
Les autres sont nommés "esclaves" et peuvent avoir un défilement individuel, mais défilent de concert dès que le maître impose un défilement.
On peut bien sûr supprimer l'affichage de la barre verticale de défilement des TListBox esclaves, mais ce n'est pas l'objet de ce post.
En pièce jointe, il y a un fichier ZIP contenant le projet complet, y compris l'exécutable. Ce source de l’unité U_TListBoxGroup.pas est largement commenté.
Petite remarque: cette technique est applicable à tout ce qui a des barres de défilement, qu'elles soient verticales et/ou horizontales.
C'est en particulier le cas des TScrollBox, TMemo etc.
Ah oui, j'oubliais... tout est écrit en Delphi 6 PE.
Partager