Array
(
)

Selecionar Item ListBox com o Mouse

Eniorm
   - 15 dez 2005

Pessoal, alguém sabe se é possível selecionar os itens do ListBox apenas
movendo o mouse, tipo, selecionar o item em que o cursor do
mouse estiver em cima??

Outro, tem como exibir em forma de hint, o texto do item selecionado, caso o texto seja maior que a largura da caixa do ListBox

abraço


Ipc$
   - 15 dez 2005

No evento onMouseMove:#Código

procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var pt:TPoint;
begin
pt.X := X;
pt.Y := Y;
ListBox1.ItemIndex := ListBox1.ItemAtPos(pt, true);
end;

Para o hint, acho que vc precisará criar um THintWindow


0
|
0

Eniorm
   - 15 dez 2005


Citação:
Para o hint, acho que vc precisará criar um THintWindow


só não entendi a linha acima? oq é o THindWindow............?

abraço


0
|
0

Edilcimar
   - 15 dez 2005

no método dito pelo ipc não dá para colocar algo como
hint := listbox.itemindex ou
hint := listbox.itematpos?


0
|
0

Adriano Santos
   - 15 dez 2005


Citação:

Citação:
Para o hint, acho que vc precisará criar um THintWindow


só não entendi a linha acima? oq é o THindWindow............?

abraço


Eu entendi, tem um exemplo que o editor do portal passou estes dias. Estou Tentando adaptar aqui, mas tah meio feio ainda...porém funciona.


[url=http://www.devmedia.com.br/visualizacomponente.aspx?comp=948&site=3]Ativar Hint[/url]


0
|
0

Martins
   - 15 dez 2005


Citação:

Citação:

Citação:
Para o hint, acho que vc precisará criar um THintWindow


só não entendi a linha acima? oq é o THindWindow............?

abraço


Eu entendi, tem um exemplo que o editor do portal passou estes dias. Estou Tentando adaptar aqui, mas tah meio feio ainda...porém funciona.


[url=http://www.devmedia.com.br/visualizacomponente.aspx?comp=948&site=3]Ativar Hint[/url]



Tb olhei essa dica passada acho q pelo Luciano Pimenta


0
|
0

Ipc$
   - 15 dez 2005

Cada vez que um hint é exibido, o TApplication cria uma instância do objeto THintWindow p/ poder exibí-lo. No seu caso seria mais simples vc ativar ShowHint do Listbox e após vc assinalar o itemindex >= 0 vc faz:#Código

ListBox1.Hint := ListBox1.Items[ListBox1.ItemIndex];
Application.ActivateHint(pt);
no final do evento onMouseMove.
Cheque se ItemIndex >=0, senão dará erro.


0
|
0

Adriano Santos
   - 15 dez 2005


Citação:

Citação:

Citação:

Citação:
Para o hint, acho que vc precisará criar um THintWindow


só não entendi a linha acima? oq é o THindWindow............?

abraço


Eu entendi, tem um exemplo que o editor do portal passou estes dias. Estou Tentando adaptar aqui, mas tah meio feio ainda...porém funciona.


[url=http://www.devmedia.com.br/visualizacomponente.aspx?comp=948&site=3]Ativar Hint[/url]



Tb olhei essa dica passada acho q pelo Luciano Pimenta


É isso msm, foi o Luciano.


0
|
0

Martins
   - 15 dez 2005

Só para retificar, pois no fim da dica tem esse nome Walter Alves Chagas Junior, suponho q este seja o autor da dica.


valew!!


0
|
0

Adriano Santos
   - 15 dez 2005


Citação:
Só para retificar, pois no fim da dica tem esse nome Walter Alves Chagas Junior, suponho q este seja o autor da dica.


valew!!


Vixi, falei merda...rsrs...


0
|
0

Martins
   - 15 dez 2005


Citação:

Citação:
Só para retificar, pois no fim da dica tem esse nome Walter Alves Chagas Junior, suponho q este seja o autor da dica.


valew!!


Vixi, falei merda...rsrs...


Esquenta não Adriano, afinal tem lá no inicio ´ dica do editor´, então normalz, relaxa.

Abaraços!!!


0
|
0

Adriano Santos
   - 15 dez 2005

Pessoal, achei este tópico que pode ajudar a complementar as dicas enviadas por todos.

[url=http://delphi.about.com/cs/adptips2001/a/bltip0201_4.htm]Delphi About [/url]


0
|
0

Eniorm
   - 15 dez 2005

Amigos, veja como ficou o codigo,

#Código

procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
pt : TPoint;
begin
pt.X := X;
pt.Y := Y;
ListBox1.ItemIndex := ListBox1.ItemAtPos(pt, true);
if (ListBox1.ItemIndex >= 0) then begin
ListBox1.Cursor := crHandPoint;
ListBox1.Hint := ListBox1.Items[ListBox1.ItemIndex];
Application.ActivateHint(pt);
end else begin
ListBox1.Cursor := crDefault;
ListBox1.Hint := ´´;
end;
end;


o resultado ficou bastante legal.... vejam!

agora o estranho é que eu esperava exibir as hints de apenas os itens cujo texto é maior que a largura do ListBox, não sendo necessário exibir a hint para itens que possui o texto que ja esteja exibindo completamente no ListBox... mas de qualquer forma eu gostei do resultado... muito obrigado a todos que ajudaram com posts e sugestões.....

que o codigo acima sirva caso vcs precisem...

abraço


0
|
0

Adriano Santos
   - 15 dez 2005


Citação:
Amigos, veja como ficou o codigo,

#Código

procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
pt : TPoint;
begin
pt.X := X;
pt.Y := Y;
ListBox1.ItemIndex := ListBox1.ItemAtPos(pt, true);
if (ListBox1.ItemIndex >= 0) then begin
ListBox1.Cursor := crHandPoint;
ListBox1.Hint := ListBox1.Items[ListBox1.ItemIndex];
Application.ActivateHint(pt);
end else begin
ListBox1.Cursor := crDefault;
ListBox1.Hint := ´´;
end;
end;


o resultado ficou bastante legal.... vejam!

agora o estranho é que eu esperava exibir as hints de apenas os itens cujo texto é maior que a largura do ListBox, não sendo necessário exibir a hint para itens que possui o texto que ja esteja exibindo completamente no ListBox... mas de qualquer forma eu gostei do resultado... muito obrigado a todos que ajudaram com posts e sugestões.....

que o codigo acima sirva caso vcs precisem...

abraço


É isso ai Enio, fico feliz de ter ajudado e uma coisa importante é ter sempre o feedback de quem foi ajudado...assim isso serve para demais usuários.

abraço


0
|
0

Adriano Santos
   - 16 dez 2005

Caramba, testei hoje de manhã e ficou show de bola mesmo o esquema hein? Parabéns mano.


0
|
0