Composants dynamiques

sebrs1 Messages postés 81 Date d'inscription dimanche 15 avril 2001 Statut Membre Dernière intervention 20 novembre 2012 - 25 juin 2002 à 00:26
sebrs1 Messages postés 81 Date d'inscription dimanche 15 avril 2001 Statut Membre Dernière intervention 20 novembre 2012 - 25 juin 2002 à 01:22
Bonjour, j'ai fais un tableau dynamique de composants dynamiques, vous suivez?
mais je sais pas comment faire pour savoir sur lequel on appui. Vous savez?

@+
Sebrs1

PS (qui ne signifie pas playstation :-)) : visitez mon site qui fait ses début svp
http://prog-zone.fr.st

2 réponses

cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
25 juin 2002 à 01:18
Je suppose donc qu'après la création du comosant tu associe un évènement OnClick ( par exemple ), qui est le même pour tous les composants créés.

Première solution :
Il faut utiliser Sender pour savoir lequel à donner l'évènement :
If TComponent(Sender).Name='Button1' Then ...
Else If TComponent(Sender).Name='Button2' Then ...
Il faut donc avoir un nom de composant clair.
Cette méthode suffit aussi si l'addresse ( Sender ) est suffisante pour les traitements. Comme par exemple pour changer le texte d'un bouton :
TButton(Sender).Caption:='TOTO';

Deuxième solution : chercher dans le tableau le composant qui donne l'évènement :
Var Numero,i:Integer;
Begin
Numero:=-1;
For i:=Low(Tableau) To High(Tableau) Do If TOcject(Tableau[i])=Sender Then Numero:=i;
If Numero>=0 Then ....

Troisième solution :
Utilise le champ Tag pour stocker l'indice du composant dans ton tableau :
Au moment de la création je suppose que tu écrit quelquechose qui ressemble à ça :
Tableau[i]:=NouveauCompo;
Ajoute alors
NouveauCompo.Tag:=i;
Il est alors facile dans un évènement du retrouver l'indice : TComponent(Sender).Tag

--- :sleepy) Nono du Moulin :sleepy) ---
0
sebrs1 Messages postés 81 Date d'inscription dimanche 15 avril 2001 Statut Membre Dernière intervention 20 novembre 2012
25 juin 2002 à 01:22
La troisieme solution est vraiment pas con est tres simple
pke n'y ai-je pas pensé plus tôt??? :-)
encore une fois, merci nono

n'est-il pas formidable ce nono??? :-)

@+
Sebrs1

PS (qui ne signifie pas playstation :-)) : visitez mon site qui fait ses début svp
http://prog-zone.fr.st
0
Rejoignez-nous