cs_andrebernard
Messages postés404Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 4 septembre 2013
-
31 mai 2007 à 15:37
cs_andrebernard
Messages postés404Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 4 septembre 2013
-
1 juin 2007 à 21:04
Bonjour à tous
Peut on mettre le nom une fonction dans une variable ????
afin que selon le parametre que l'on entre dans l'argument de Essai il appelle la fonction correspondante sans faire de "select case"
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 31 mai 2007 à 15:49
Re,
Petit exemple pour illustrer (tout dans le formulaire)
Private Sub Form_Load()
Call CallByName(Me, "HelloWorld", VbMethod, "COUCOU")
Call CallByName(Me, "ByeBye", VbMethod, "COUCOU")
End Sub<hr />
Public Sub HelloWorld(Param As String)
Call MsgBox(Param)
End Sub<hr />
Public Sub ByeBye(Param As String)
Call MsgBox(Param)
End
End Sub<hr />, ----
[code.aspx?ID=41455 By Renfield]
cs_andrebernard
Messages postés404Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 4 septembre 20131 31 mai 2007 à 15:53
Merci beaucoup de vos réponses
@Casy
Justement le probleme c'est que je ne voulais pas avoir a referencer tous les codages que j'aurais en DLL, surtout qu'il peut y en avoir des nouveaux, et il faudrais que je modifie et rajoute a chaque fois le code source.
C'est pourquoi je ne voulais pas faire de choix style select case ou if else,
mais merci quand meme
@Jrivet
CallByName, je connaissais pas
Je ne sais pas du tout comment l'utiliser, je vais chercher ....
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 31 mai 2007 à 17:06
Re,
Oui car le premier parametre est l'objet contenant la fonction (d'apres ce que j'ai compris)
Il faut donc que la procédure à appeler sois dans un objet (donc ps de mosule par exemple)
Place le code que tu utilises pour que l'on puisse t'aider un peu plus.
cs_andrebernard
Messages postés404Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 4 septembre 20131 31 mai 2007 à 17:13
Voici le code :
Private Declare Function lstrcpy Lib "Kernel32" (ByVal lpString1 As Any, ByVal lpString1 As Any) As Long
Public Declare Function CryptageP1M1 Lib "P1M1.dll" (ByVal a As String) As Long
Public Declare Function DecryptageP1M1 Lib "P1M1.dll" (ByVal a As String) As Long
cs_andrebernard
Messages postés404Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 4 septembre 20131 31 mai 2007 à 18:23
Dans la phrase :
RetourDll = CallByName(Cryptage, Cryptage, VbMethod, PhraseACoder)
Et j'ai oublié de remettre private au deux declarations que j'avais mises dans un module standard.
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 1 juin 2007 à 08:09
Salut,
ATTENTION CallByName ne peux pas accéder à des procédures privées. ou alors j'ai pas compris ton dernier post.
Ensuite pour l'utiliser il faut indiquer l'objet contenant les procédures.
Dans mon exemple tout était au même endroit donc j'ai mis ME, mais pour toi je ne sais pas du tout comment faire pour taper dans les procédures d'une Dll
cs_andrebernard
Messages postés404Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 4 septembre 20131 1 juin 2007 à 21:00
J'suis dégouté, vous aviez presque trouvé.
Bon, j'espere qu'une ame charitable passera par la pour nous donner un coup de main.
En attendant je vous remercie encore de votre aide
Bonne journée
cs_andrebernard
Messages postés404Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 4 septembre 20131 1 juin 2007 à 21:04
Au pire je vais recréer un POST pour demander comment utiliser CallByName dans une DLL, peut etre que quelqu'un connait la reponse. Vous m'avez fait avancé d'un pas, et c'est deja bien