cs_MyC
Messages postés94Date d'inscriptionlundi 23 septembre 2002StatutMembreDernière intervention22 avril 2003
-
28 nov. 2002 à 11:23
cs_MyC
Messages postés94Date d'inscriptionlundi 23 septembre 2002StatutMembreDernière intervention22 avril 2003
-
29 nov. 2002 à 09:13
Je veux réaliser une dll en vb, et j'ai besoin de passer des contrôles en paramètre d'une fonction. Mais lorsque je compile, il m'indique qu'il ne peut y avoir d'objet privé passer en paramètre d'une fonction... un truc du genre quoi. Par contre si je vire uniquement les contrôles passés en paramètre, là ça fonctionne. Malheureusement, il faut absolument que je récupère ses contrôles en paramètre. Existe-t-il une alternative à ce problème ?
cs_processus
Messages postés360Date d'inscriptionvendredi 24 août 2001StatutMembreDernière intervention 9 juillet 20083 28 nov. 2002 à 15:33
Yep, mettre en public de ta classe la déclaration explicit de ton contrôle (si ce n'est pas un contrôle standard vb)
Si c pas ca, file moi la syntaxe qui plante.
==============
Site Web de JDPROG Présentation de MP3 Index
Logiciel d'indexation de fichier MP3
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013129 28 nov. 2002 à 16:31
Sinon, tout dépend des fonctions que tu veux faire sur ton contrôle, car si tu veux juste y appliquer des api, tu n'aura besoin que du handle du contrôle, et là, c'est facile de le passer en paramètre (type Long).
cs_MyC
Messages postés94Date d'inscriptionlundi 23 septembre 2002StatutMembreDernière intervention22 avril 2003 29 nov. 2002 à 09:13
Voici une des fonctions qui est la cause de l'erreur, et qui est donc placée dans le module de classe de la DLL:
Public Sub ShellContextMenu(currentControl As Control, hwndFeuille As Long, X As Single, Y As Single, Shift As Integer)
'
' exemple d'utilisation
if typeof currentControl is listView then
strItem = currentControl.selecteditem.text
elseif typeof currentControl is listBox then
'...
end if
'
end sub
Voici l'erreur exacte :
"Erreur de compilation:
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"
Etant donné que j'ai besoin d'utliser, très souvent, les propriétés du contrôle visé (currentControl), je ne vois pas comment procéder pour remplacer le paramètre "currentControl as control" qui pose problème dans la procédure.