TListBox à choix multiple - Delphi/Pascal - Programmation
Marsh Posté le 08-01-2008 à 21:13:09
Salut 
 
ta boucle dans la fonction choix ne peut pas se contenter de parcourir le nombre d'items sélectionnés 
 
si t'a 20 items et que l'item 2 et le 19 sont selectionnés tu ne vas parcourir que l'item 1 et 2 et hop boucle finie sans aller voir si y en a d'autres...pô bien 
 
faut parcourir tout les items: 
 
| for Entier := 0 to ListBox.Items.count-1 do if (ListBox.Selected[Entier]) then Result := Result+ListBox.Items[Entier]+#13; | 
 
 
 
Marsh Posté le 08-01-2008 à 22:33:58
Super merci flagad'aware, 
 
Par contre quant je fais :   
 
ListBox2.Items.Add(Choix(ListBox1)); 
 
 
Dans la ListBox2 sa affiche ceci : 
Items1Items2Items3 
 
Et enfaîte il faudrait que ce soit à la ligne : 
Items1 
Items2 
Items3 
 
Merci d'avance
Marsh Posté le 09-01-2008 à 00:54:17
pô d'koué  
 
 
heu ce que t'a mis avant ça marchait: 
|   | 
 
 
si tu fait ListBox2.Items.Add ça te met le résultat dans un seul item donc à la suite  ![[:barthaliastoxik] [:barthaliastoxik]](https://forum-images.hardware.fr/images/perso/barthaliastoxik.gif) 
 
Marsh Posté le 09-01-2008 à 09:46:58
Oui mais quant je fais : 
 
procedure TForm1.BitBtn1Click(Sender: TObject); 
begin 
ListBox2.Items.Text := Choix(ListBox1); 
end; 
 
Ça efface toute la TListBox, et moi je veux ajouter le texte à la suite de ce qu'il y a déjà écrit dedans.
Marsh Posté le 09-01-2008 à 10:11:02
ah ok 
 
bah sois tu te sert de choix comme procédure et au lieux de: 
 
| Result := Result+ListBox.Items[Entier]+#13; | 
 
 
tu fais ton ListBox2.Items.Add; 
 
 
sois tu utilise un stringlist que tu remplit dans choix en faisant: StrList.add(ListBox.Items[Entier]); toujours au lieu de result :=... 
 
 
et dans ton BitBtn1Click tu boucle sur StrList.Count-1 pour l'ajouter au listbox2 
 
c'est toa qui voit 
Marsh Posté le 09-01-2008 à 10:34:57
J'ai testé ceci qui ne marche pas : 
 
| Code : 
 | 
 
 
[DCC Erreur] Unit1.pas(61): E2003 Identificateur non déclaré : 'ListBox2'
Marsh Posté le 09-01-2008 à 20:34:35
erheim  bah listbox2.items.add koi? , faut mettre quelquechose à y ajouter
  bah listbox2.items.add koi? , faut mettre quelquechose à y ajouter 
 
| for Entier := 0 to ListBox.Items.count-1 do if (ListBox.Selected[Entier]) then ListBox2.Items.Add(listbox.items[entier]); | 
 
 
au passage: attention aux indications du compliateur qui sont pas toujours à prendre au pied de la lettre
Marsh Posté le 10-01-2008 à 16:17:25
Reply
Marsh Posté le 08-01-2008 à 14:17:50
Bonjour,
Voila j'ai deux TListBox :
- La TListBox1 à choix multiple avec plusieurs Items.
- La TListBox2 qui est vide.
Exemple :
Je sélectionne plusieurs Items dans la TListBox1.
En cliquant sur le TBitBtn1 je voudrais afficher les Items sélectionnés dans la TListBox2.
J'ai testé ce code qui ne marche pas vraiment :
function Choix(Listbox: TListBox): string;
var
Entier : Integer;
begin
Result := '';
for Entier := 0 to ListBox.SelCount-1 do if (ListBox.Selected[Entier]) then Result := Result+ListBox.Items[Entier]+#13;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ListBox2.Items.Text := Choix(ListBox1);
end;
Merci d'avance pour votre aide.
---------------
Référencement par http://www.logicielreferencement.com