Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment appeler 1 procédure ayant des params ???

10 réponses
Avatar
LE TROLL
Bonjour,

Comment appeler une procédure ayant des
paramètres, voici mon code:

---------------------
Sub appelant()
call picture1_click(Index As Integer = 3)
End Sub
'
Sub Picture1_Click(Index As Integer) ' picture1(1
to 8)
' a la réception : Index = 3
End Sub
---------------------

Le but est, depuis "appelant()", d'aller dans
"picture1(..)" avec un index ayant déjà une
valeur, afin de lui passer...

Merci de m'indiquer comment faire ???

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------

10 réponses

Avatar
Jacques93
Bonjour LE TROLL,
LE TROLL a écrit :
Bonjour,

Comment appeler une procédure ayant des
paramètres, voici mon code:

---------------------
Sub appelant()
call picture1_click(Index As Integer = 3)
End Sub
'
Sub Picture1_Click(Index As Integer) ' picture1(1
to 8)
' a la réception : Index = 3
End Sub
---------------------

Le but est, depuis "appelant()", d'aller dans
"picture1(..)" avec un index ayant déjà une
valeur, afin de lui passer...

Merci de m'indiquer comment faire ???




Euh :

Call Picture1_Click (3)

ou
i = 3
Call Picture1_Click (i)

ou alors, je n'ai pas commpris la question,

--
Cordialement,

Jacques.
Avatar
LE TROLL
Bonjour Jacques,

Merci, c'est bien ça, et c'est si simple, je
vais le noter...

Cordialement :o)

--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------



"Jacques93" a écrit dans le
message de news:

| Bonjour LE TROLL,
| LE TROLL a écrit :
| > Bonjour,
| >
| > Comment appeler une procédure ayant des
| > paramètres, voici mon code:
| >
| > ---------------------
| > Sub appelant()
| > call picture1_click(Index As Integer = 3)
| > End Sub
| > '
| > Sub Picture1_Click(Index As Integer) '
picture1(1
| > to 8)
| > ' a la réception : Index = 3
| > End Sub
| > ---------------------
| >
| > Le but est, depuis "appelant()", d'aller
dans
| > "picture1(..)" avec un index ayant déjà une
| > valeur, afin de lui passer...
| >
| > Merci de m'indiquer comment faire ???
| >
|
| Euh :
|
| Call Picture1_Click (3)
|
| ou
| i = 3
| Call Picture1_Click (i)
|
| ou alors, je n'ai pas commpris la question,
|
| --
| Cordialement,
|
| Jacques.
Avatar
Driss HANIB
Oui j'aurai dit pareil .c'est ce que je fais.
je ne sais pas par contre si les parenthèses sont indispensables

Driss
"Jacques93" a écrit dans le message de
news:
Bonjour LE TROLL,
LE TROLL a écrit :
> Bonjour,
>
> Comment appeler une procédure ayant des
> paramètres, voici mon code:
>
> ---------------------
> Sub appelant()
> call picture1_click(Index As Integer = 3)
> End Sub
> '
> Sub Picture1_Click(Index As Integer) ' picture1(1
> to 8)
> ' a la réception : Index = 3
> End Sub
> ---------------------
>
> Le but est, depuis "appelant()", d'aller dans
> "picture1(..)" avec un index ayant déjà une
> valeur, afin de lui passer...
>
> Merci de m'indiquer comment faire ???
>

Euh :

Call Picture1_Click (3)

ou
i = 3
Call Picture1_Click (i)

ou alors, je n'ai pas commpris la question,

--
Cordialement,

Jacques.


Avatar
Jacques93
Bonjour Driss HANIB,
Driss HANIB a écrit :
Oui j'aurai dit pareil .c'est ce que je fais.
je ne sais pas par contre si les parenthèses sont indispensables




Elles le sont quand on utilise le mot-clé Call, qui est optionnel.
Si on l'omet, pas de parenthèses. Donc :

Call NomDeProcedure (paramétres)

ou

NomDeProcédure paramètres

au choix. Sans certitude absolue il me semble que le mot-clé Call a été
conservé pour des raisons de compatibilité avec d'anciennes versions du
langage Basic.

Et par ailleurs cela permet d'appeler une procédure ou une fonction,
mais dans le cas d'une fonction, sa valeur de retour est ignorée.

--
Cordialement,

Jacques.
Avatar
jean-marc
"Jacques93" wrote in message
news:
Bonjour Driss HANIB,
Driss HANIB a écrit :
Oui j'aurai dit pareil .c'est ce que je fais.
je ne sais pas par contre si les parenthèses sont indispensables






Hello,





Elles le sont quand on utilise le mot-clé Call, qui est optionnel.
Si on l'omet, pas de parenthèses. Donc :

Call NomDeProcedure (paramétres)

ou

NomDeProcédure paramètres

au choix. Sans certitude absolue il me semble que le mot-clé Call a été
conservé pour des raisons de compatibilité avec d'anciennes versions du
langage Basic.

Et par ailleurs cela permet d'appeler une procédure ou une fonction, mais
dans le cas d'une fonction, sa valeur de retour est ignorée.






Oui, mais non en fait.


Essayer ce code, tout simple en apparence:

'--------------------------------

Private Sub Command1_Click()
Dim n As Integer

n = 34
test n
MsgBox "n=" & n

n = 34
test (n)
MsgBox "n=" & n

n = 34
Call test(n)
MsgBox "n=" & n

End Sub


Private Sub test(ByRef v As Integer)
v = 666
End Sub

'-----------------------------

Sauriez vous prédire ce que vont afficher les message boxs ?

Et expliquer le comportement ?

Bon amusement :-)

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
jean-marc
"Jacques93" wrote in message
news:
Bonjour Driss HANIB,
Driss HANIB a écrit :
Oui j'aurai dit pareil .c'est ce que je fais.
je ne sais pas par contre si les parenthèses sont indispensables




Elles le sont quand on utilise le mot-clé Call, qui est optionnel.
Si on l'omet, pas de parenthèses. Donc :

Call NomDeProcedure (paramétres)

ou

NomDeProcédure paramètres




Bon, j'ai dit "oui mais non", mais c'est juste une façon
de parler :-)

En fait ce que tu dis est tout à fait exact, bien sur.

L'astuce dans le bout de code que j'ai posté, c'est que VB
autorise *au niveau syntaxe* l'utilisation d'une forme qui
est *interdite* par le langage.

Ce qui fait que VB *autorise* l'écriture d'une forme *invalide*
ce qui donne un résultat très curieux qui peut occasionner
si on ne fait pas gaffe (ou si on débute) des heures de
recherche, par ce que c'est contre intuitif.

Voila le lien vers la doc de référence:
http://msdn2.microsoft.com/en-us/library/aa243242(VS.60).aspx

Il faut vraiement lire tout et jusqu'à la dernière ligne
pour voir le piège ...

A suivre ...


--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
LE TROLL
Ah ben non, sans call on destructure totalement la
phrase, ça ressemble à un sms, on se demande si ce
n'est pas une variable dont on aurait oublié un
signe entre les deux, ah ben non, bis :o)

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Jacques93" a écrit dans le
message de news:

| Bonjour Driss HANIB,
| Driss HANIB a écrit :
| > Oui j'aurai dit pareil .c'est ce que je fais.
| > je ne sais pas par contre si les parenthèses
sont indispensables
| >
|
| Elles le sont quand on utilise le mot-clé Call,
qui est optionnel.
| Si on l'omet, pas de parenthèses. Donc :
|
| Call NomDeProcedure (paramétres)
|
| ou
|
| NomDeProcédure paramètres
|
| au choix. Sans certitude absolue il me semble
que le mot-clé Call a été
| conservé pour des raisons de compatibilité avec
d'anciennes versions du
| langage Basic.
|
| Et par ailleurs cela permet d'appeler une
procédure ou une fonction,
| mais dans le cas d'une fonction, sa valeur de
retour est ignorée.
|
| --
| Cordialement,
|
| Jacques.
Avatar
Jacques93
LE TROLL a écrit :
Ah ben non, sans call on destructure totalement la
phrase, ça ressemble à un sms, on se demande si ce
n'est pas une variable dont on aurait oublié un
signe entre les deux, ah ben non, bis :o)



Ah ben si ;-)

Je n'ai fait que dire, dans d'autres termes, peut-être,
ce que dit la doc, comme indiqué par le lien de jean-marc,
et qui dit la même chose que la doc en local

Call est optionnel, et implique les parenthèses :

Call Optional; keyword. If specified, you must enclose argumentlist
in parentheses

--
Cordialement,

Jacques.
Avatar
Jacques93
jean-marc a écrit :

Oui, mais non en fait.

Bon amusement :-)




Autre code tout simple, inspiré du tien, qui explique peut être
l'autorisation des parenthèses sans le Call (passage d'une expresion en
paramètre), bien que cela n'ai pas de sens avec ByRef :

Private Sub Command1_Click()
Dim n As Integer, m As Integer

n = 34
m = 1
test n + m
MsgBox "n+m=" & n + m

n = 34
m = 1
test (n + m)
MsgBox "n+m=" & n + m

n = 34
m = 1
Call test(n + m)
MsgBox "n+m=" & n + m

End Sub


Private Sub test(ByRef v As Integer)
v = 666
End Sub




--
Cordialement,

Jacques.
Avatar
Jean-marc
Jacques93 wrote:
jean-marc a écrit :

Oui, mais non en fait.

Bon amusement :-)




Autre code tout simple, inspiré du tien, qui explique peut être
l'autorisation des parenthèses sans le Call (passage d'une expresion
en paramètre), bien que cela n'ai pas de sens avec ByRef :



Oui très bon également, avec en prime la "découverte" que
les opérateurs arithmétiques ont une priorité supérieure
à un passage de paramètre !

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;