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
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
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