ListBos Multiselect

selma-elec Messages postés 27 Date d'inscription jeudi 2 octobre 2003 Statut Membre Dernière intervention 5 février 2007 - 22 oct. 2003 à 17:04
selma-elec Messages postés 27 Date d'inscription jeudi 2 octobre 2003 Statut Membre Dernière intervention 5 février 2007 - 24 oct. 2003 à 07:48
Bonjour a tous..

Comment trouver les elements d'une listebox multiselect sans avoir à parcourir la listebox completement et regarder si l'element est selectionné.

pas comme c'est ecris ci dessous.

For i := 0 to ListBox1 do
Begin
If ListBox1.Selected[i] Then
Begin
showmessage(ListBox1.Items.Strings[i]);
End;
End;

y a t il une autre méthode, moins longue quand la liste
est composé de 2000 elements ?

JMN

3 réponses

jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
23 oct. 2003 à 16:44
Honnetement je ne vois pas. Mis à part si tu veux détruire ces éléments tu as la commande deleteselected. Sinon je ne vois pas.
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
23 oct. 2003 à 23:40
Une ListBox avec 2000 éléments ?????
Ben, va falloir prendre son mal en patience, surtout si tu affiches un message à chaque ligne sélectionnée !
Pour savoir si tous les éléments de la liste sont sélectionnés, tu peux utiliser la propriété SelCount. Si SelectCount = Count, alors tout est sélectionné.
Ca t'évitera de recompter chaque ligne :big)
May Delphi be with you
0
selma-elec Messages postés 27 Date d'inscription jeudi 2 octobre 2003 Statut Membre Dernière intervention 5 février 2007
24 oct. 2003 à 07:48
j'ai cherché et je n'ai pas trouvé de solution du coté des options de la listbox, mais par contre j'ai trouvé une autre solution.

Quand on sort de la listbox avec par exemple 10 elements selectionnés, il suffit de creer un tableau dynamique du nombre d'élements selectionnés et ensuite d'utilisé ce tableau à la place de la listbox et bien sur de mettre à jour
ce tableau à chaque modification de la listbox. (FACILE)

il sera ensuite plus rapide de parcourir que les 10 elements du tableau (Tab.Length) que les 2000 de la listbox pour trouver les 10 sélectionnés.

Au fait, ma liste box à plus de 2000 elements car ce sont des codes article que l'utilisateur peut selectionné pour retrouvé par la suite des rapports de fabrication utilisant ces codes articles.

JMN (je donne toujours les réponses à mes propre question,cela peut aider les autres..)
0
Rejoignez-nous