Accueil > Manip’s > Delphi > Listes > Un Edit Combo Box
DELPHI
Un Edit Combo Box
mercredi 15 août 2012, par
Le combo Box prend peu de place, mais ses propriétés sont limitées, et notamment il ne possède pas d’évènement OnMousemove qui permet de le déplacer facilement de façon dynamique.
Il est très difficile de trouver un composant tout fait qui possède à la fois les propriétés d’une ListBox et la souplesse d’un combo
L’artifice consiste à créer un champ texte :
Tedit | Edit1 |
Couplé à une List Box
TListBox | ListBox1 |
Par défaut ListBox1 est caché
ListBox.Visible := False |
Il s’affiche quand l’Edit prend le focus
OnEnter | ListBox1.visible := True ; |
Comme le but de la manip est de créer un composant déplaçable à la souris,
- Il suffit de déplacer le Tedit
- Puis d’aligner la liste en dessous quand elle s’ouvre :
With ListBox1 do Begin | |
left := Edit1.Left ; | |
width := Edit1.Width ; | |
top := Edit1.Top + Edit1.Height ; | |
End ; |
Quand on clique sur un des éléments de la liste, il s’affiche dans le Tedit
OnClick | Edit1.Text := ListBox1.Items[ ListBox1.ItemIndex] ; |
ListBox1.Visible := False ; |
Pour ajouter une entrée à la liste
ListBox1.Items.Add( Edit1.Text ) ; |
Pour supprimer une entrée
ListBox1.Items.Delete( ListBox1.ItemIndex ] ; |
Solution simple et élégante pour éviter de s’enquiquiner avec les composants soient introuvables, soient imbitables
cf : CERFEUILLE