RETORNAR COLLECTION DENTRO DE UMA CLASS

DEXIE 28/05/2013 08:34:43
#424127
Olá galera!

Gostaria de saber se é possível definir uma variável como collection dentro de uma classe.
Se sim, como eu devo fazer?

Tentei fazer da seguinte forma


Private vItens as Collection

Public Property Get Itens() As Variant
Set Itens = vItens
End Property

Public Property Let Itens(ByVal vNewValue As Variant)
vItens = vNewValue
End Property


Mas ele me da [Ô]Argument not optional[Ô] por conta do index no Let.
Alguém saberia me dizer a forma correta de se proceder nesse caso?

Obrigado desde já pela ajuda!
TSANALISTA 10/06/2013 16:44:40
#424555
Mim diga para qual finalidade prentende fazer? Pode descreve o que pretende fazer ?
KERPLUNK 10/06/2013 17:26:45
#424564
Sinto muito [Ô]cortar seu barato[Ô], mas o comportamento que você quer, não funciona no VB6... Já tentei a torto e à direito e não consegui...
FFCOUTO 10/06/2013 18:37:43
#424568
Dexie, definir a variável pode ser feito normalmente. No entanto, o uso da propriedade é feito da forma norma de uso da collection.

Private vItens as Collection

Public Property Get Itens() As Collection
On Local Error Goto errHandle
Set Itens = vItens
Exit Property

errHandle:
Set Itens = Nothing
End Property

Private Sub Class_Initialize()
[ô]Aqui você inicializa a coleção
Set vItens = Nothing
Set vItens = New Collection
End Sub


Para usar:

Dim myClass As New ClassColecao

Private Sub Command1_Click()
[ô]Adiciona um novo item
myClass.Itens.Add ([Ô]Seu item[Ô])
End Sub

Private Sub Command2_Click()
[ô]Remove o item
myClass.Itens.Remove 1
End Sub


Veja se te ajuda.
SAMUKA 11/06/2013 10:46:35
#424587
Resposta escolhida
DEXIE, ao invés de retornar uma Collection, você também pode retornar um array de uma Classe de dados definida por você.

Tópico encerrado , respostas não são mais permitidas