Passage d'un controle en parametre

cs_neoleo Messages postés 23 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 2 juillet 2005 - 16 juin 2004 à 16:41
cs_neoleo Messages postés 23 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 2 juillet 2005 - 21 juin 2004 à 13:02
je vais essayer d'être le plus claire possible :
je suis entrain de créer une OCX, cette OCX manipule un certain controle (pictureBox par exemple), ce controle passe par plusieurs fonctions de l'OCX (ie qu'une première fonction de l'OCX le reçoit en parmètre, elle le manipule puis l'envoi vers une autre fonction de l'OCX... et ainsi de suite)
biensûr le controle en question n'appartient pas à l'OCX mais à l'application contneur.
j'ai essayé la syntaxe suivante
public sub MyFunction(MonControle as PictureBox)
mais ça ne marche pas, le message suivant apparait: "Des modules d'objets privés ne peuvent être utilisés dans les modules d'objets publics comme types renvoyés ou paramètres pour les procédures publiques, comme membres de données publics ou comme champs de types publics définis par l'utilisateur"
même chose si j'utilise le type Control
j'ai essayé aussi le type variant et ça ne marche pas

si vous avez une réponse je vous en serai vraiment reconnaissant

5 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
16 juin 2004 à 18:41
As-tu essayé en As Object ?

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
0
cs_neoleo Messages postés 23 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 2 juillet 2005
21 juin 2004 à 12:04
Tous d'abord, merci de m'avoir répondu
Oui j'ai essayé le type Object mais lors de l'appel de ma fonction le message suivant apparaît: "un objet est requis"
j'ai fais l'appel des manières suivantes :
MyOCX.MySub (frmTest.MyPicture)
ou encor
MyOCX.MySub (MyPicture)
je note que frmTest est la feuille qui contient l'OCX et MyPicture est le contrôle que je veut passer en paramètre
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
21 juin 2004 à 12:33
Et par référence (ByRef) qu'est ce que ca donne ?

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
0
cs_neoleo Messages postés 23 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 2 juillet 2005
21 juin 2004 à 12:41
Je ne saurais te remercier CA MARCHE :)
Encor Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_neoleo Messages postés 23 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 2 juillet 2005
21 juin 2004 à 13:02
Pour ceux qui sont dans le même problème, j'ai trouvé une autre solution que voici :
au lieu de passer en paramètre l'objet lui même, on va passer juste son nom de la manière suivante :
MyOCX.MySub (MyPicture.Name)
dans la procedure MySub (qui se trouve au niveau de l'OCX) je procède comme suit :

Public sub MySub (ByVal PictureName As String) 
 'Tous d'abord je déclare un entier qui va contenir le nombre  de contrôle se trouvant dans la fenêtre qui contient l'OCX
 dim IntCountControl as integer

 ' cette ligne permet d'affecter le nombre de controle contenu dans la fenêtre Parant de l'OCX
 IntCountControl = UserControl.ParentControls.Count
 ' je vais utiliser ce nombre dans une boucle For pour rechercher le controle ayant le nom PictureName que ma fonction a reçu comme parmètre
 For i = 1 To IntCountControl 
    If TypeOf UserControl.ParentControls.Item(i) Is  PictureBox Then
       Set PicPicture = UserControl.ParentControls.Item(i)
       If PicPicture.Name = PictureName Then
        MsgBox "C'est Bon on à trouvé notre Objet"
           Exit For
       End If
    End If
 Next i

end sub


Voilà, j'espère que ça va aider
0