M@el
Messages postés1Date d'inscriptionmardi 7 octobre 2003StatutMembreDernière intervention 5 septembre 2005
-
5 sept. 2005 à 10:02
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013
-
12 juil. 2007 à 13:51
Hello,
Je dois à l'intérieur d'une classe manipuler un tableau d'un TYPE que j'ai moi même défini.
Cette classe doit pouvoir renvoyer une ligne du tableau dans le style :
Public Property Get LigneTableau(iLigne as Integer) As MON_TYPE
LigneTableau= TableauPrive(iLigne) '// TableauPrive est un tableau privé de MON_TYPE ds la classe
End Property
Bien sur le type MON_TYPE doit aussi être accessible en dehors de la classe.
Question : où dois je déclarer ce fichu TYPE pour que VB6 ne m'envoie pas chier ?
Car en public dans la classe il ne veut pas, en public dans un module idem...
Il coince sur : "Public Property Get LigneTableau(iLigne as Integer) As MON_TYPE"
Il met : "Erreur de compilation : seul les types publics definis par l'utilisateur et qui sont définis dans des modules d'objet public peuvent être utilisé comme type renvoyé ou paramètres pour des procédure public de module de classe".
je ne vois pas ce qu'ils entendent par "modules d'objet public"
alexis_bonal
Messages postés2Date d'inscriptiondimanche 21 mai 2006StatutMembreDernière intervention 3 novembre 2006 3 nov. 2006 à 13:58
Hello,
Je ressors ce vieux message des archives car je rencontre le même problème: j'ai défini un type MONTYPE dans un module (*.bas) et je cherche à passer toto as MONTYPE en argument d'une Sub d'un module de classe (*.cls). ==> Même msg d'erreur.
Par contre, je n'ai pas du tout compris la solution donnée par DarK Sidious...
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013131 3 nov. 2006 à 14:37
Bah il s'agit de déclarer le type non pas dans un module, mais en public dans une classe instanciable publiquement => dans la feuille de propriété de vb (celle qui permet d'accèder aux propriétés d'un contrôle par exemple), lorsqu'on ouvre un module de classe, on peut définir la visibilité de la classe => il faut la mettre en public pour que ca puisse marcher.
alexis_bonal
Messages postés2Date d'inscriptiondimanche 21 mai 2006StatutMembreDernière intervention 3 novembre 2006 3 nov. 2006 à 14:47
Dsl, mais je ne vois pas .
Quand je vais sur mon module de classe, je n'ai accès qu'à 3 propriétés : name, databindingbehavior, datasourcebehavior.
Si je créée une propertypage "ADD>>Propertypage", j'ai une nouvelle zone graphique qui apparaît mais je suis assez démuni...
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_accapucif
Messages postés1Date d'inscriptionsamedi 7 octobre 2006StatutMembreDernière intervention12 juillet 2007 12 juil. 2007 à 11:46
Moi aussi j'ai rencontré les même soucis lorssue je voulais faire passer dans une FUNCTION ou un SUB un argument qui était une variable de type personalisé.
Visual Basic m'envoyait toujours un message d'erreur:
"only public user types...". En fait il suffit que la sub ou la fonction ou encore la propriété soit déclaré non pas public, mais friend... et en principe ça fonctionne.
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013131 12 juil. 2007 à 13:51
accapucif : tu sais à quoi sers les fonctions friend ? Tout dépend de quel type de projet tu fais, mais la fonction friend, si tu fais une dll ou un exe activeX, ne sera visible qu'à l'intérieur de ton projet, c'est donc bien différent qu'une fonction publique !
Mais qu'est-ce qui vous empêche de faire une classe instanciable publiquement ?