mongol77
Messages postés75Date d'inscriptiondimanche 2 octobre 2005StatutMembreDernière intervention24 juin 2007
-
16 avril 2006 à 13:21
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
16 avril 2006 à 15:26
Salut,
J'ai un probléme de passage de paramétres à une fonction située dans un module.
Jusqu'à maintenant j'avais juste besoin de passer un tableau à cette fonction, en bref :
public function la_fonction (tableau as variant)
end function
et j'appelais cette fonction en lui passant le tableau dans ma form principale :
dim tableau() as integer
'et plus loin :
redim tableau(x,y)
'ici je remplis le tableau
la_fonction(tableau) ' j'appelle la fonction
et tout marchais bien dans le meilleur des mondes
mais j'ai eu besoin depuis peu que le tableau retourne 2 valeurs j'ai donc déclaré un type du genre :
public type terrain
rectangle as rect
type as integer
end type
je suis obligé apparement de déclarer ce type dans le module parce qu'il est en public
et j'ai changé la déclaration du tableau en faisant :
dim tableau() as terrain
'et plus loin :
redim tableau(x,y)
'ici je remplis le tableau
la_fonction(tableau) ' j'appelle la fonction
Mais là ca plante à l'appel de la fonction (la_fonction(tableau)) l'erreur c'est :
Only public user defined types defined in public object modules can be used as parameters or return types for public procedures of class modules or as fields of public user defined types
et même si je déclare le tableau avec un dim
Ai-je bien fait de déclarer un type ? voyez vous une autre facon de faire ?
je suis en VB6, si vous voulez des précisitions, ca sera avec plaisir
Merci
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 16 avril 2006 à 14:29
Salut
Le problème est dans la déclaration de tes paramètre de la fonction :
public function la_fonction (ByRef tableau() As terrain)
"ByRef "pour que ton tableau garde les modifications apportées dans la fonction après la sortie de la fonction.
"As terrain" pour qu'il connaisse la structure des données. Variant l'obligera à analyser le contenu de la variable passée : Il saura reconnaitre un tableau mais ne pourra pas, en plus, remonter d'un cran et chercher la structure interne de chaque élément.
N'utiliser Variant que dans des cas extrèmes.
Toujours lancer son application avec Ctrl-F5 afin qu'il vérifie tout le code avant son lancement, plutôt que de découvrir les erreurs au moment du test.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accro