Listbox et combobox en delphi

cs_romualdus Messages postés 2 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 9 mars 2006 - 9 mars 2006 à 15:17
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 - 9 mars 2006 à 16:16
bonjour a tous, voici mon probleme,
j'ai un listbox qui contient 10 elements et je souhaiterais les affectes 1 a 1 dans 10 edit differents(l'ordre de selection des element n'a pas d'importance)
exemple
elements du listbox : 1, 2, 3, 4, 5, 6, 7 , 8 , 9, 10

ce que je souhaiterais : edit1 recois 2, edit2 recois 6, edit3 recois 9, edit4 recois 8, edit5 recois 5, edit6 recois 1, edit7 recois 10, edit8 recois 3, edit9 recois 7, edit10 recois 4,

et si je souhaite faire une nouvelle modification :edit1 recois 10, edit2 recois 9, edit3 recois 8, edit4 recois 7, edit5 recois 6, edit6 recois 5,edit7 recois 4, edit8 recois 3, edit9 recois 2, edit10 recois 1

je coince depuis 1 semaine, je dois me compliquer la vie pour ce probleme
merci d'avance
Romualdus

4 réponses

jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
9 mars 2006 à 15:50
salut,

fais une procedure comme cela (je ne l'ai testée que pour 4 éléments mais le nombre peut être quelconque



type tri= array[0..10] of integer// à dimensionner en fonction de tes besoins



procedure Tform1.AssignEdit(var atri:tri);

var i:integer;

begin

for i: =1 to 4 do // j'ai mis 4 mais tu peux mettre ce que tu veux dans la limite de dimension du tableau

begin

with TEdit(FindComponent('Edit' + IntToStr(i))) do // on recherche les éléments à afficher

begin

text: = listbox1.Items[atri[i]];

end ;

end;

end;



procedure TForm1.Button1Click(Sender: TObject);

var Atri:tri;

begin

atri[1]: = 2; //il suffit que tu remplisse le tableau des éléments à afficher

atri[2]: =1;

atri[3]:=4;

atri[4]:=3;

atri[1]:=2;

AssignEdit(atri);

end;





@+

jlen
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
9 mars 2006 à 16:02
Salut,
si tu coinces depuis une semaine c'est que tu n'as pas due remarquer que le premier élément de la ListeBox n'est pas 1 mais 0

Donc quand tu écris Edit1 reçoit 2 en fait c'est 1 qui correspond au deuxième élément de la ListBox
Donc tu fais deux procedure une par cas :

Begin
With ListBox1 do
Begin
Edit1.Text := Items[1]; // Edit1 reçoit 2
Edit2.Text := Items[5];
....
Edit6.Text := Items[0];
End;
End;

pense aussi à nommer tes composants... le code devient plus claire

@+
Cirec
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
9 mars 2006 à 16:12
@ Jlen
Salut, ce coup-ci c'est moi qui n'ai pas rafraîchi avant de poster
tu vois tôt où tard... désolé

@+
Cirec
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
9 mars 2006 à 16:16
salut cirec,

ce n'est pas grave surtout que ta remarque est fort à propos il lui
suffira de faire un mix des 2 propositions et ce sera parfait!!



@+

jlen
0
Rejoignez-nous