HERDAR PROPRIEDADE ITEMDATA

CLEVERTON 23/08/2006 00:39:50
#166622
pessoal...
Não consegui herdar está propriedade nem a paú.
Ela não deixa eu pegar o Retorno.

Quem Consegui isso vai me quebrar um galhozão. no UserControl no Property Let não aceita que a propriedade devolva um retorno. mas o combo e list vem com isso.

No ItemData do Combo se dá entender que a propriedade é feita da seguinte forma:

Public Property Let ItemData(Integer) [txt-color=#ff0000] as Long[/txt-color]
ObjetoList.Itemdata(integer) = ItemData()
End property

mas dá erro onde está em vermelho quando eu coloco o código


o que pode está acontecendo ?
CLEVERTON 23/08/2006 01:11:04
#166624
Existe Outra forma de herdar a propriedade ItemData para que o uso dela fiquei igualzinho ao do List ou Combo ?
USUARIO.EXCLUIDOS 23/08/2006 01:33:05
#166625
Resposta escolhida
O VB não gera automaticamente um mapeamento lá muito bom quando se trata das coleções / índices de controles internos. Na verdade, ele interpreta certas propriedades na forma literal e não como coleções.

Os ComboBox possuem uma coleção Items, que você pode replicar em seu controle e disponibilizar ao usuário. Dessa forma, o usuário poderá adicional, listar, contar e remover os itens diretamente da coleção.

Seria algo como em:


...
Private mItems As VBA.Collection
...
[c]Private Sub UserControl_Inicialize
...
Set mItems = New VBA.Collection
...
End Sub

...
Public Sub Add(Valor as Variant)
mItems.Add Valor
End Property
...
[c]Public Function Count() As Long
Count = mItems.Count
End Function

...
Public Sub Remove(Index As Long) 
...
mItems.Remove Index
...
End Property
...
[c]Public Function Item(Index As Long) As Variant
...
Set Item = mItems(Index)
...
End Property
...

Depois, no momento de mostrar o controle, por exemplo, limpar os itens do combo e, varrendo essa coleção, o preencher novamente.

[/c]
CLEVERTON 23/08/2006 09:43:43
#166691
é verdade PROFESSOR, realmente a única saída seria usar a classe Collection. usa uma Função, que a a única forma de se ter uma resposta de retorno.

Mas eu postei justamente por que fiquei encucado com isto. Porquê o VB mostra o ItemData como uma propriedade que tem um parametros para Gravação, e esta mesma faz Leitura ?

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