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

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacques93
Le #15374831
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.
LE TROLL
Le #15374811
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.
Driss HANIB
Le #15374791
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.


Jacques93
Le #15374781
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.
jean-marc
Le #15374771
"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_' ;
jean-marc
Le #15374761
"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_' ;
LE TROLL
Le #15374751
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.
Jacques93
Le #15374741
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.
Jacques93
Le #15374731
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.
Jean-marc
Le #15374721
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_' ;
Publicité
Poster une réponse
Anonyme