Affecter un évènement en dynamique

plituc Messages postés 9 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 5 janvier 2004 - 18 déc. 2003 à 18:14
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 - 19 déc. 2003 à 23:35
Bonjour à tous, :-)

J'ai créé 3 boutons en dynamique et je souhaiterais associer un évènement propre à chacun de ces éléments pour toute action "Onclick".

J'ai ainsi :

Procedure Creation_Bouton(nom:string);

//Nom : Partie du Nom de la procédure à lancer sur Onclick
//Exemple: Lance_Lundi ou Lance_Mardi... où Lundi et Mardi sont issus du paramètre 'nom'

begin
...UnBouton.OnClick :lance_????;>Problème du nom !
...
end;

Comment peut-on faire pour indiquer dynamiquement le nom de la procédure à utiliser lorsque l'on clique sur l'un des boutons ? (construction dynamique du nom de la procédure)

J'ai essayé de nombreuses possibilités mais là, je sèche ! (problème de variable notamment...).

Si quelqu'un avait une idée il me rendrait un grand service !

Merci !!

Plituc

5 réponses

yoghisan Messages postés 204 Date d'inscription samedi 10 mai 2003 Statut Membre Dernière intervention 2 juin 2005 1
19 déc. 2003 à 00:10
Tiens voila ta réponse complète mais pour un seul bouton pour affecter un evenement a un composant. Ca devrait te suffire je pense pour te debrouiller par la suite

unit Unit1;

interface

uses
Forms, Classes, Controls, StdCtrls, Dialogs;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure MonBoutonClick(Sender: TObject);
private
MonBouton:TButton;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
MonBouton:=tbutton.Create(self);
with MonBouton do begin
parent:=form1;
left:=8;
top:=8;
Name:='MonBouton';
Caption:='Cliquez ICI';
OnClick:=MonBoutonClick;
end;
end;

procedure TForm1.MonBoutonClick(Sender: TObject);
begin
showmessage('Je viens de cliquer sur '+tcomponent(sender).name);
end;

end.
0
plituc Messages postés 9 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 5 janvier 2004
19 déc. 2003 à 11:48
Merci pour toutes ces infos ! Elles me sont très utiles ! :big)

Par contre, je constate qu'il est nécessaire d'avoir un évènement disposant du paramètre Sender... Dans la cas d'une TListBox et de l'évènement OnDrawItem je vais avoir plus de mal je pense...

Plituc
0
plituc Messages postés 9 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 5 janvier 2004
19 déc. 2003 à 14:34
Re !

J'ai trouvé pour les TListBox : il faut utiliser Control. Ainsi on aura :

TListBox(Control).Name

En tout cas merci à Japee et yoghisan de m'avoir mis sur la piste !!
:)
0
yoghisan Messages postés 204 Date d'inscription samedi 10 mai 2003 Statut Membre Dernière intervention 2 juin 2005 1
19 déc. 2003 à 18:34
Dis Japee, tu as une fonction "echo" integrée ? ;)

Je sais, je deconne... tu as du surement écrire en même temps que moi mais j'avais un poils d'avance sur toi...

hihihi...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
19 déc. 2003 à 23:35
Arf, salut, yogishan !
Exact, le temps que je poste mon message, et j'ai vu que tu avais déjà répondu ;)
Pas de problème, et sympa d'avoir cité "l'excellente source de Japee".
Amitiés !
0
Rejoignez-nous