Boucle et contrôle (titre~?) [Delphi5] - Programmation
Marsh Posté le 14-05-2001 à 14:16:09
AGA a écrit a écrit : La situatiuon :=>> un fiche + 10 case à cocher (checkbox ), leur nom est du type ccAdrX où X represente un nombre (ccAdr1, ccAdr2 etc...) un tableau du style tabAdr : ARRAY [1..9] OF STRING; J'ai fait ça : ... ccAdr1.Caption:=tabAdr[1]; ccAdr2.Caption:=tabAdr[2]; ccAdr3.Caption:=tabAdr[3]; ccAdr4.Caption:=tabAdr[4]; ccAdr5.Caption:=tabAdr[5]; ... Et bien figurer vous que je suis sûr qu'on peut faire ça avec une boucle...mais comment ? For i:=1 TO 9 DO ccAdr?i?.caption:=tabAdr[i] END; Voili |
[#0055aa]
Marsh Posté le 14-05-2001 à 16:56:59
je ne crois pas que ca soit faisaible aussi simplement...
il faut, je pense, qu'a la creation de ta form, tu parcours tous tes composants, et si c'est une checkbox avec un nom qui commance par 'ccAdr', l'ajouter a un tableau de checkbox puis apres, utiliser le tableau pour changer les captions de tes checkbox
par ex:
Code :
|
et donc maintenant, tu as un tableau avec toutes tes checkboxes et tu peux le parcourir dans une boucle pour modifier les captions ou autres proprietes
ps: c'est pas dit que le code marche, je l'ai fait comme ca de tete !
[edit]--Message édité par JWhy--[/edit]
Marsh Posté le 14-05-2001 à 17:58:29
Le système avec les [#...] c'est quoi ? C'est possible de faire un truc de ce genre ?
Ça peut tj etre utile...
[edit]--Message édité par antp--[/edit]
Marsh Posté le 15-05-2001 à 08:12:57
JWhy a écrit a écrit : je ne crois pas que ca soit faisaible aussi simplement... il faut, je pense, qu'a la creation de ta form, tu parcours tous tes composants, et si c'est une checkbox avec un nom qui commance par 'ccAdr', l'ajouter a un tableau de checkbox puis apres, utiliser le tableau pour changer les captions de tes checkbox par ex:
|
merci JWhy faut que j'essaie ce soir
Effectivement tout seul j'aurais pas trouvé!
...Je vais être obligé de mettre dans les crédits de mes miniSofts :
...Avec la participation de JWhy le grand
a+
Marsh Posté le 15-05-2001 à 08:33:16
non, en fait, ce qu'il faut faire, c'est récupérer le tableau des composants (control, je crois) de ta fiche.
Ca ferait un truc du genre:
(NomFichie.Control[i]) as (CheckBox).Caption = tab[i];
Marsh Posté le 15-05-2001 à 09:26:27
rufo a écrit a écrit : non, en fait, ce qu'il faut faire, c'est récupérer le tableau des composants (control, je crois) de ta fiche. Ca ferait un truc du genre: (NomFichie.Control[i]) as (CheckBox).Caption = tab[i]; |
ça va foirer si il y a autre chose que des checkbox.
tab sera pas assez grand, et les i de control seront pas les mêmes que les i de tab.
Marsh Posté le 15-05-2001 à 10:05:00
Le plus simple :
for i := 1 to 9 do
TCheckBox(FindComponent('ccAdr' + intToStr(i))).Caption := tabAdr[i];
Marsh Posté le 15-05-2001 à 10:10:10
Miles V a écrit a écrit : Le plus simple : for i := 1 to 9 do TCheckBox(FindComponent('ccAdr' + intToStr(i))).Caption := tabAdr[i]; |
bon, ba j'ai choisit ta solution : la plus simple et ressemble à mon idée théorique ET un plus elle MARCHE...
Marsh Posté le 15-05-2001 à 12:42:24
Miles V a écrit a écrit : Le plus simple : for i := 1 to 9 do TCheckBox(FindComponent('ccAdr' + intToStr(i))).Caption := tabAdr[i]; |
J'y ai même pas pensé alors que j'avais utilisé FindComponent il y a une semaine pour un autre problème
Marsh Posté le 15-05-2001 à 13:56:20
j'aurais appris qqchose aujourd'hui ...
Marsh Posté le 14-05-2001 à 14:15:19
La situatiuon :=>>
un fiche + 10 case à cocher (checkbox ), leur nom est du type ccAdrX où X represente un nombre (ccAdr1, ccAdr2 etc...)
un tableau du style tabAdr : ARRAY [1..9] OF STRING;
J'ai fait ça :
...
ccAdr1.Caption:=tabAdr[1];
ccAdr2.Caption:=tabAdr[2];
ccAdr3.Caption:=tabAdr[3];
ccAdr4.Caption:=tabAdr[4];
ccAdr5.Caption:=tabAdr[5];
...
Et bien figurer vous que je suis sûr qu'on peut faire ça avec une boucle...mais comment ?
For i:=1 TO 9 DO
ccAdr[#0000fa]?i?[#0000fa].caption:=tabAdr[i]
END;
Voili
---------------
ma vie, ma carrière! - Un trait d’union entre des photos et des mots.