Sos Vb

Résolu
leo_ced Messages postés 2 Date d'inscription vendredi 1 juillet 2005 Statut Membre Dernière intervention 10 mai 2006 - 1 mai 2006 à 13:28
leo_ced Messages postés 2 Date d'inscription vendredi 1 juillet 2005 Statut Membre Dernière intervention 10 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
   
    intOp1 = txtOpe1.Text
    intOp2 = txtO

intOp2 = txtOpe2.Text
   
   
    intResult = Somme(intOp1, intOp2)
   
    txtResult.Text = intResult
   

End Sub

est ce normal ca ?

2 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
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.

Daniel
3
leo_ced Messages postés 2 Date d'inscription vendredi 1 juillet 2005 Statut Membre Dernière intervention 10 mai 2006
1 mai 2006 à 14:34
merci de ta reponse

DaNiel
0
Rejoignez-nous