cs_andrebernard
Messages postés404Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 4 septembre 2013
-
8 oct. 2007 à 14:59
cs_andrebernard
Messages postés404Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 4 septembre 2013
-
8 oct. 2007 à 17:49
Bonjour à tous
Je voudrais savoir si il est possible de faire un retour dans la variable d'une fonction par une autre fonction.
Je m'explique :
J'ai deux forms :
Dans la Form1, j'ai une sub dans laquelle j'appelle une fonction qui est dans la Form2
Quand je clic sur le bouton qui est sur la form2, j'aimerais qu'une valeur remonte par la fonction.
Seulement le probleme c'est que je suis dans la sub "Bouton_click"
Je sais la question n'est pas claire, je m'y perd moi-meme
Dans la FORM1
Private Sub Form_Load()
Dim x As String
x = Form2.essai("essai")
MsgBox x
End Sub
Dans la FORM2
Private Sub Command1_Click()
?????????????????? = "Coucou" Unload Me
End Sub
Public Function essai(variable)
Me.Show 1
End Function
Que faudrait il mettre à la place des
??????????????? pour
que "coucou" remonte dans X et s'inscrive dans le MessageBox ?
Car si je met essai = "Coucou" ou essai "coucou" ça plante dans les 2 cas.(Normal puisque ça rappelle la fonction "Essai" et moi je voudrais juste ecrire dans le retour.)
Suis-je obligé de mettre une variable en global du style
Dans un module
Public x As String
Dans la FORM1
Private Sub Form_Load()
Form2.essai "essai"
MsgBox x
End Sub
Dans la FORM2
Private Sub Command1_Click()
X = "Coucou"
Unload Me
End Sub
Public sub essai(variable)
Me.Show 1
End Sub
Mais j'aurais préféré une methode plus élégante et remonter la valeur par la fonction
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 8 oct. 2007 à 15:42
Salut,
Ou bien encore et je crois que cela répond mieux à ta question.
'FORM1
Private Sub Form_Load()
Call MsgBox(Form2.TestRetour("essai"))
End Sub<hr />
'FORM2
Private X As String
Private Sub Command1_Click()
X = "CA MARCHE"
Unload Me
End Sub<hr />
Public Function TestRetour(ByVal TmpString As String) As String
Call MsgBox(TmpString)
Call Me.Show(vbModal)
TestRetour = X
End Function , ----
[code.aspx?ID=41455 By Renfield]
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 8 oct. 2007 à 15:35
Salut,
Si tu veux faire retourne une String a une Fonction tu peux essayer ceci.
'FORM1
Private Sub Form_Load()
Call MsgBox(Form2.TestRetour("essai"))
End Sub<hr />
'FORM2
Public Function TestRetour(ByVal TmpString As String) As String
TestRetour = "CA MARCHE"
Call MsgBox(TmpString)
Call Me.Show(vbModal)
End Function<hr />, ----
[code.aspx?ID=41455 By Renfield]
Si ce n'est pas du tout ce que tu souhaites faire, soit plus précis.
@+: Ju£i?n Pensez: Réponse acceptée
cs_andrebernard
Messages postés404Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 4 septembre 20131 8 oct. 2007 à 16:33
Merci JRIVET.
Donc si j'ai bien compris, tu met la variable en public, mais seulement pour la form2 afin qu'elle puisse passer d'une procedure à l'autre.
Mais le fait de les appeller par CALL ne change pas grand chose si ???
Ce serait équivalent à ça, pour que je comprenne ??
'FORM1 Private Sub Form_Load()
X = Form2.TestRetour("essai")
MsgBox X
End Sub
'FORM2
Private X As String
Private Sub Command1_Click()
X = "CA MARCHE"
Unload Me
End Sub
Public Function TestRetour(ByVal TmpString As String) As String
Me.Show 1
TestRetour = X
End Function
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 8 oct. 2007 à 17:02
Oui,
Le call n'apporte rien mais c'est juste une "règle" que je m'impose voila tout. (une règle sans raison apparente d'ailleurs si ce n'est que je préfère voir Call)
GEDDi
Messages postés206Date d'inscriptionlundi 22 novembre 1999StatutMembreDernière intervention 3 juillet 2008 8 oct. 2007 à 17:18
Le 'Call' est historique !
C'est un héritage fonctionnel et conceptuel de QBasic qui ne pouvait pas appeler directement une fonction sans mettre un 'sujet' devant le 'verbe'.Call Truc() ( sujet Call + verbe Truc() )
Gerome GUILLEMIN ( auteur du langage FBSL ( qui supporte par héritage le Call aussi ^^ ) )
http://www.fbsl.net-------------------------------------