Composants dynamiques

Signaler
Messages postés
82
Date d'inscription
dimanche 15 avril 2001
Statut
Membre
Dernière intervention
20 novembre 2012
-
Messages postés
82
Date d'inscription
dimanche 15 avril 2001
Statut
Membre
Dernière intervention
20 novembre 2012
-
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

Messages postés
962
Date d'inscription
mercredi 3 avril 2002
Statut
Membre
Dernière intervention
12 septembre 2006
1
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) ---
Messages postés
82
Date d'inscription
dimanche 15 avril 2001
Statut
Membre
Dernière intervention
20 novembre 2012

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