PDA

View Full Version : [VB6] Problema con una classe


DreyMIX
31-07-2007, 12:43
Salve, ho il seguente problema. Vi posto il codice:

1) La classe si chiama "MainClass.cls" e c'è questo codice:

Option Explicit
Private fieldUser() As TipoDati

Private Type TipoDati
Type As String
Desc As String
Enabled As Boolean
End Type

Private Sub Class_Initialize()
ReDim fieldUser(6)

fieldUser(0).Type = "cod"
fieldUser(0).Desc = "Codice"
fieldUser(0).Enabled = False

fieldUser(1).Type = "text"
fieldUser(1).Desc = "Nome"
fieldUser(1).Enabled = True

fieldUser(2).Type = "text"
fieldUser(2).Desc = "Cognome"
fieldUser(2).Enabled = True

fieldUser(3).Type = "date"
fieldUser(3).Desc = "Data di nascita"
fieldUser(3).Enabled = True

fieldUser(4).Type = "num"
fieldUser(4).Desc = "Età"
fieldUser(4).Enabled = False

fieldUser(5).Type = "text"
fieldUser(5).Desc = "Sesso"
fieldUser(5).Enabled = True

fieldUser(6).Type = "text"
fieldUser(6).Desc = "Comune di nascita"
fieldUser(6).Enabled = True
End Sub

Property Get getFieldUser() As Variant
getFieldUser = fieldUser
End Property

2) Poi ho un form chiamato "FrmMain.frm" e dentro c'è:

Private mClass As MainClass

Private Sub Form_Load()
'// Richiama la classe principale
Set mClass = New MainClass
c = mClass.getFieldUser
End Sub

Ecco appena esegue il codice:

c = mClass.getFieldUser

entra nella classe e nel metodo "getFieldUser()".
Appena ci entra VB6 va in debug e mi dice il seguente errore:

Errore di compilazione:

Solo i tipi definiti dall'utente in moduli di oggetto pubblici possono essere assegnati a o da una variabile Variant oppure passati a funzioni per cui è prevista l'associazione tardiva.

A questo punto non so che fare.

Grazie per un eventuale aiuto :)

-MiStO-
31-07-2007, 12:59
mmhhh a naso prova a dichiarare la property come public
quindi public property get ecc ecc
credo sia quello :)

DreyMIX
31-07-2007, 13:15
Grazie ma ci avevo già provato e stesso errore.

DreyMIX
31-07-2007, 13:47
Ok ho risolto. Dovevo dichiarare la variabile "c" nel form come oggetto.

Dim c As Object