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

harkle Messages postés 8 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 21 octobre 2003 - 3 sept. 2003 à 11:00
harkle Messages postés 8 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 21 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.....

3 réponses

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

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