MOUSEMOVE EM CADA ITEM DE UM COMBOBOX VB6

GERALDUS 09/11/2012 11:33:24
#413889
Olá pessoal!

Pedi ajuda da galera aqui sobre implementar uma especie de tooltip em cada item de um combox aberto e talll..., tive muita ajuda e consegui desenvolver alguma coisa, porém ainda não ficou como eu gostaria. Estou anexando ao tópico um exemplo que peguei aqui, nele eu consigo criar um indice com cada item que mouse passa, mas eu gostaria de quando passar o mouse no item apareça na label do lado o item que estou passando o mouse e não apenas o indice, por exemplo: quando eu passar o mouse no item [Ô]maria[Ô] quero que apareça na label do lado a palavra [Ô]maria[Ô] e não apenas o indice dela.

Alguém poderia olhar esse script e ver se consegue me ajudar com isso?

Djá eu fico grato.
VELDRAME 09/11/2012 11:46:11
#413893
Assim

Private Sub Timer1_Timer()
Dim pt As POINTAPI
Dim i As Integer
GetCursorPos pt

For i = 0 To Combo1.ListCount - 1 [ô]mudei aqui, afinal você pode ter mais de de 7 itens.
If (Me.Top + Me.Combo1.Top + cTitleBar + cItemAltura * i + Me.Combo1.Height) / 15 < pt.Y And (Me.Top + Me.Combo1.Top + cTitleBar + cItemAltura * (i + 1) + Me.Combo1.Height) / 15 >= pt.Y Then
Label1 = [Ô]Item: [Ô] & Combo1.List(i) [ô]Aqui ele te mostra o text do item
Exit For
Else
Label1 = [Ô]nao ta em nada[Ô]
End If
Next [ô]i
End Sub
GERALDUS 09/11/2012 12:12:44
#413897
Salver VELDRAME! Muito obrigado pela ajuda!

Ainda deu um probleminha quando tenho muitos itens, é o seguinte: se tenho muitos itens o combo já abre com uma barra de rolagem, até ai normal, acontece que seu rolo a barra para passar o mouse nos itens que estão abaixo ai não funciona direito, ou coisa que esqueci de falar, não estou conseguinte delimitar a largura do combo, se passo o mouse do lado dele aberto, mesmo que totalmente fora do combo a reação é como se estivesse passando mouse sobre os itens. Se você puder dar mais uma olhada eu fico muito grato, se não tudo bem, em todo caso você já ajudou muito.
VELDRAME 09/11/2012 14:24:02
#413911
Para [Ô]Delimitar a largura da Combo[Ô]:
Se o Mouse passar fora ele desabilita o timer

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Timer1.Enabled = False
End Sub

Quanto a qtd de itens não consegui reproduzir o problema
GERALDUS 09/11/2012 14:57:27
#413927
Quanto a quantidade de itens...

é assim... Esse exemplo que ta aqui no anexo já tem 10 itens, 8 numeros e 2 nomes no final, da forma que está se eu abrir o combo e passar o mouse nos itens que inicia em 0 ele vai mostrando na label os indices 0, 1, 2... até chegar em 7 que é o ultimo numero que aparece sem eu precisar rolar a barrinha, ai se eu rolo barra para ver os outros eu vou encontrar [Ô]Ana[Ô] e [Ô]Maria[Ô] e ao passar o mouse em Ana deveria aparecer o indice 8 e Maria o o indice 9, mas não acontece, quando eu passo o mouse em Ana aparece o indice 6 e Maria o indice 7, quando na verdade deveria aparecer 8 e 9 continuando a sequencia. Usei os indices para explicar, mas com os nomes também é a mesma coisa.

Obrigado por tentar ajudar.
Tópico encerrado , respostas não são mais permitidas