Variable dans le nom d'un composant

thonyboy Messages postés 165 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 16 février 2011 - 29 avril 2003 à 12:25
thonyboy Messages postés 165 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 16 février 2011 - 29 avril 2003 à 13:09
Bonjour,

Je cherche a faire un truc du genre :
Supposons X composants Tlabels et 1 variable I

Case of I
1: Tlabel1.caption := 'Label1'
2: Tlabel2.caption := 'Label2'
3: Tlabel3.caption := 'Label3"
etc etc
End;

Peut on faire plus simple, en une seule ligne, comme

Tlabel+inttostr(I) := 'label'+str(inttostr(I))

^--- C'est ca que je ne sais pas faire !

D'avance merci

2 réponses

cs_Bestiol Messages postés 833 Date d'inscription dimanche 6 janvier 2002 Statut Membre Dernière intervention 3 novembre 2005 1
29 avril 2003 à 13:01
Oui !

C'est assez simple, et encore une fois, tu vas avoir recours au transtypage !

Il existe la fonction FindComponent, qui renvoie un pointeur vers le composant dont tu passes le nom en paramètre...

Voici comment l'utiliser dans ton cas :

TLabel( FindComponent('Label' + IntToStr(i)) ).Caption := 'label' + IntToStr(i);

Tu remrqueras encore une fois le transtypage avec TLabel, permettant de dire au compilateur qu'on veut accéder aux propriétés d'un TLabel !!

Bonne prog' !
[mailto:bestiol@cario.fr Bestiol. ]
0
thonyboy Messages postés 165 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 16 février 2011
29 avril 2003 à 13:09
Et encore une fois Merci bestiol !!!!!
C'est parfait.

(Tiens y'a plus qu'une question a laquelle j'attends une réponse, et je pensais que c'était la plus simple...p)
0
Rejoignez-nous