VB6: Erreur de compilation incompréhensible....pour moi

VB6: Erreur de compilation incompréhensible....pour moi - VB/VBA/VBS - Programmation

Marsh Posté le 07-05-2003 à 11:31:33    

Bonjour à tous!  
 
voila mon code :
' je declare un type
private Type SauvegardeQuarantaine
        lngNumLigneCommande As Long
        lngQteQuarantaine As Long
End Type
 
puis je fais:  
 
 Dim colQuarantaine As New Collection
 Dim quarantaine As SauvegardeQuarantaine
   
   quarantaine.lngNumLigneCommande = 123
   quarantaine.lngQteQuarantaine = 123                 colQuarantaine.Add quarantaine
 
et la ca plante à la compilation :
"Seuls les types de données définis par l'utilisateur et dans des modules objet public peuvent être converti vesr un variant ou passés en parametre à des fonctions à liaison tardive"
 
Merci de votre aide
 

Reply

Marsh Posté le 07-05-2003 à 11:31:33   

Reply

Marsh Posté le 07-05-2003 à 11:37:19    

mais il te la met sur quelle ligne cette erreur ?

Reply

Marsh Posté le 07-05-2003 à 11:37:49    

backdafuckup a écrit :

mais il te la met sur quelle ligne cette erreur ?


 
 
sur : colQuarantaine.Add quarantaine

Reply

Marsh Posté le 07-05-2003 à 11:37:56    

en gros: ton type structure est présent dans la définition de ton interface (argument et/ou valeur de retour) et il n'aime pas car cela ne peut figurer que dans une classe dite publique, qui n'est possible que dans une DLL ActiveX.
 
Le workaround est de transformer ton type en classe où tu déclareras les éléments de ton type sous forme de variables publiques.  L'inconvénient est que tu devras gérer des objets au lieu de simples structures :/


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 07-05-2003 à 11:40:41    

drasche a écrit :

en gros: ton type structure est présent dans la définition de ton interface (argument et/ou valeur de retour) et il n'aime pas car cela ne peut figurer que dans une classe dite publique, qui n'est possible que dans une DLL ActiveX.
 
Le workaround est de transformer ton type en classe où tu déclareras les éléments de ton type sous forme de variables publiques.  L'inconvénient est que tu devras gérer des objets au lieu de simples structures :/


 
Il faut donc que je rajoute un module de classe à mon projet ?
Et ensuite, comment je déclare cette classe ?

Reply

Marsh Posté le 07-05-2003 à 11:46:38    

ben ajouter une classe, c'est la déclarer [:spamafote]
 
tu changes son nom, tu fais les Public MaVariable As Type dont tu as besoin, puis tu l'utilises comme n'importe quelle classe avec New et Nothing.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 07-05-2003 à 11:54:11    

drasche a écrit :

ben ajouter une classe, c'est la déclarer [:spamafote]
 
tu changes son nom, tu fais les Public MaVariable As Type dont tu as besoin, puis tu l'utilises comme n'importe quelle classe avec New et Nothing.


 
OK merci beaucoup !!!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed