Bonjour à tous,
Je rencontre un problème sur un passage de paramètre typé à un objet.
J'obtiens le message suivant:
Envoyé par
Message d'erreur
Seuls les types publics définis par l'utilisateur et qui sont définis dans les modules d'objets publics, peuvent être utilisés comme paramètres pour des procédures publiques de modules de classe.
Dans un module classique j'ai défini des variables publiques (les codes en dessous sont une représentation simplifiée du programme).
Module1.bas
1 2 3 4 5 6 7 8 9 10 11 12 13
| Public Type tElement
var_1 as Double
var_N as Long
End Type
Public Type tParam
var_1 as Integer
var_2 as Double
var_3(5) as tElement
' ...
End Type
Public Params(10) as tParam
Public Toto as Class1 |
Note: Le type tParam est susceptible d'être utilisé dans plusieurs formulaires.
A côté de ça, j'ai une classe qui défini un objet Toto.
Class1.cls :
1 2 3 4 5 6 7 8
| Public Sub Init(ByVal ident as integer, ByRef params as tParam)
'
' mon traitement...
'
End Sub
'
' D'autres sub derriere....
' |
Et pour finir, j'ai un formulaire principal qui instancie et initialise l'objet Toto
Main.frm
1 2 3 4 5 6 7 8
| Private Sub Form_Load()
' traitement...
' Init du tableau Params()
' ...
set Toto = new Class1
call Toto.Init(i, Params(1))
' traitement...
End Sub |
Vb6 me signale qu'il ne peut pas réaliser l'appel à Init().... il coince sur le type tParam
Pourtant la définition de tParam est sensée être accessible à tous le monde et toutes les procédures concernées sont publiques.
Rectification :
C'est dans la déclaration dans ma classe que cela coince...
Public Sub Init(ident as integer, params as tParam)
Comment faire pour résoudre ce problème ?
Merci d'avance pour vos réponses.
Partager