OVH Cloud OVH Cloud

Transmettre un paramètre supplémentaire à une procédure évènemen ti

3 réponses
Avatar
Jacques
Bonjour
Je simule un clic sur un bouton d'une toolbar avec le code ci-dessous (i
étant l'index du bouton).
Call Toolbar1_ButtonClick(Me.Toolbar1.Buttons.Item(i))
Je voudrais transmettre aussi à la procédure le contenu d'une variable, par
exemple strNom.
Si je fais
Call Toolbar1_ButtonClick(Me.Toolbar1.Buttons.Item(i), strNom), avec
optional ou non, ça coince.
Comment passer cette variable à la procédure?Pour l'instant, la variable est
déclarée niveau module et elle est accessible depuis la procédure, mais je
voudrais éviter...
Merci.

3 réponses

Avatar
Guy DETIENNE
Salut ;O)

Tu ne peux pas faire de la sorte. Les appels de fonction et ou méthode d'un
objet (ActiveX,...) sont figés.
Tu ne peux donc y intégrer tes propres paramètères.

Pour arriver à faire cela, utilise simplement une variable global à ton
formulaire ou ton module ou au projet entier.

Guy


"Jacques" a écrit dans le message de
news:
Bonjour
Je simule un clic sur un bouton d'une toolbar avec le code ci-dessous (i
étant l'index du bouton).
Call Toolbar1_ButtonClick(Me.Toolbar1.Buttons.Item(i))
Je voudrais transmettre aussi à la procédure le contenu d'une variable,


par
exemple strNom.
Si je fais
Call Toolbar1_ButtonClick(Me.Toolbar1.Buttons.Item(i), strNom), avec
optional ou non, ça coince.
Comment passer cette variable à la procédure?Pour l'instant, la variable


est
déclarée niveau module et elle est accessible depuis la procédure, mais je
voudrais éviter...
Merci.


Avatar
david
salut,

comme l'a dit Guy, on ne peux pas changer le prototype d'une fonction
lors de son utilisation.

Pour cela, tu peux utiliser une variable globale (attention au effets
de bords), ou créer 2 procédures :
private sub Tb_Bt_Click(index as integer)
myTb_Bt_Click Index
end sub
private sub myTb_Bt_Click(index as integer, optional byval Txt as
string)
... 'traitement du clic
end sub

Dans ce cas, pour simuler un clic, il faut appeler la 2° proc (avec 1
ou 2 paramètres).

A+, david
Avatar
Jacques
Merci.
C'est bien ce que je craignais (;-

"Guy DETIENNE" a écrit :

Salut ;O)

Tu ne peux pas faire de la sorte. Les appels de fonction et ou méthode d'un
objet (ActiveX,...) sont figés.
Tu ne peux donc y intégrer tes propres paramètères.

Pour arriver à faire cela, utilise simplement une variable global à ton
formulaire ou ton module ou au projet entier.

Guy


"Jacques" a écrit dans le message de
news:
> Bonjour
> Je simule un clic sur un bouton d'une toolbar avec le code ci-dessous (i
> étant l'index du bouton).
> Call Toolbar1_ButtonClick(Me.Toolbar1.Buttons.Item(i))
> Je voudrais transmettre aussi à la procédure le contenu d'une variable,
par
> exemple strNom.
> Si je fais
> Call Toolbar1_ButtonClick(Me.Toolbar1.Buttons.Item(i), strNom), avec
> optional ou non, ça coince.
> Comment passer cette variable à la procédure?Pour l'instant, la variable
est
> déclarée niveau module et elle est accessible depuis la procédure, mais je
> voudrais éviter...
> Merci.