sebrs1
Messages postés81Date d'inscriptiondimanche 15 avril 2001StatutMembreDernière intervention20 novembre 2012
-
25 juin 2002 à 00:26
sebrs1
Messages postés81Date d'inscriptiondimanche 15 avril 2001StatutMembreDernière intervention20 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
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 20062 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