Appeler une sub ou fonction dont le nom est contenu dans une variable

Signaler
Messages postés
8
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
21 octobre 2003
-
Messages postés
8
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
21 octobre 2003
-
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.....

3 réponses

Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
28
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.

Christophe R.
0
Messages postés
8
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
21 octobre 2003

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.
0
Messages postés
8
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
21 octobre 2003

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
0