Appeler une sub ou fonction dont le nom est contenu dans une variable
harkle
Messages postés8Date d'inscriptiondimanche 9 février 2003StatutMembreDernière intervention21 octobre 2003
-
3 sept. 2003 à 11:00
harkle
Messages postés8Date d'inscriptiondimanche 9 février 2003StatutMembreDernière intervention21 octobre 2003
-
3 sept. 2003 à 11:56
Quelqu'un peut il me dire comment fair en VB6 pour appeler une sub ou fonction dont le nom est contenu dans une variable?
p.ex
Function Msg(msg as String)
msgbox(msg, "attention")
End function
MaVariable = "Msg("Salut")
et là il faudrait que je puisse appeler la fonction depuis la variable...
j'ai déjà essayé en déclarant le vb scripte dans la form (qui permet d'exécuter du code) mais il ne donne accès qu'au obj. Si qqn à une solution please.....
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 3 sept. 2003 à 11:09
Si tu veux appeler une méthode ou une propriété d'un objet, tu peux utiliser CallByName() ... Sinon, il faudrait que tu fasse une mini-classe, avec une méthode contenant ta sub à appelre et que tu instancies cette classe pour faire un CallByName dessus.
harkle
Messages postés8Date d'inscriptiondimanche 9 février 2003StatutMembreDernière intervention21 octobre 2003 3 sept. 2003 à 11:48
Merci, tu m'a sauvé la vie. Comme les form et les classes sont des obj y a pas de prob... y a que les fonctions des moduls que tu ne peut pas appeler. de toute façon j'utilise des modules de classe dans le cas présent donc ca roule....
En fait c'est pour que dans un language de scripte je puisse appeler des fonctions de mon prog sans devoir prévoir qu'elle peuvent être appelées.
harkle
Messages postés8Date d'inscriptiondimanche 9 février 2003StatutMembreDernière intervention21 octobre 2003 3 sept. 2003 à 11:56
En fait ca donne ca en claire
'dans la form1
Public Class As Class1
Private Sub Command1_Click()
Set Class = New Class1
CallByName Class, "Message", VbMethod, "Salut"
End Sub
--------------------------------------------------------
'Dans un module de classe appelé classe1
Public Function Message(Txt as String)
MsgBox Txt, vbAbortRetryIgnore, "Essai"
End Function