leo_ced
Messages postés2Date d'inscriptionvendredi 1 juillet 2005StatutMembreDernière intervention10 mai 2006
-
1 mai 2006 à 13:28
leo_ced
Messages postés2Date d'inscriptionvendredi 1 juillet 2005StatutMembreDernière intervention10 mai 2006
-
1 mai 2006 à 14:34
Bonjour, voilà je suis en révision sur VB et y a un truc qui m'echappe.
J'ai ici une petite application qui fonctionne bien. Lorsque on passe par somme dans Private Sub cmdCalculer_Click(), j'ai bien l'appel de la fonction mais je comprends pas pourquoi ca marche vu que j'ai pas les même variables.
j'ai dans
Private Sub cmdCalculer_Click()
intOpe1 et intOpe2
alors que
Private Function Somme
j'ai Private Sub cmdCalculer_Click()
intOpe1 et intOpe2
alors que
Private Function Somme
j'ai pintOpe1 et pintOpe2
Code:
Option Explicit
Private Function Somme(pintOpe1 As Integer, pintOpe2 As Integer) As Integer
Somme = pintOpe1 + pintOpe2
End Function
Private Sub cmdCalculer_Click()
Dim intOp1 As Integer
Dim intOp2 As Integer
Dim intResult As Integer
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 1 mai 2006 à 13:59
Salut,
parfaitement normal, Somme() reçoit ses paramètres avec ses propres noms,
ce sont des variables locales qui sont connues seulement par la fonction,
en fait il sagit de 2 noms différents (pintOpe1 et intOp1) mais qui pointent sur la même adresse, à cause du ByRef par défaut:
Private Function Somme(ByRef pintOpe1 As Integer,ByRef pintOpe2 As Integer) As Integer
en utilisant ByVal au lieu de ByRef, on aurait 2 variables différentes ayant la même valeur, ce qui gênerait pas ici parce que le résultat Somme serait identique.