Selecionar Item ListBox com o Mouse

15/12/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


Eniorm

Respostas

15/12/2005

Ipc$

No evento onMouseMove:
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


Responder Citar

15/12/2005

Eniorm

[quote:17e30b8230=´ipc$´]Para o hint, acho que vc precisará criar um THintWindow[/quote:17e30b8230]

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

abraço


Responder Citar

15/12/2005

Edilcimar

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


Responder Citar

15/12/2005

Adriano Santos

[quote:380186fbcc=´Enio Marconcini´][quote:380186fbcc=´ipc$´]Para o hint, acho que vc precisará criar um THintWindow[/quote:380186fbcc]

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

abraço[/quote:380186fbcc]

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]


Responder Citar

15/12/2005

Martins

[quote:143f9e1a2a=´Adriano Santos´][quote:143f9e1a2a=´Enio Marconcini´][quote:143f9e1a2a=´ipc$´]Para o hint, acho que vc precisará criar um THintWindow[/quote:143f9e1a2a]

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

abraço[/quote:143f9e1a2a]

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][/quote:143f9e1a2a]


Tb olhei essa dica passada acho q pelo Luciano Pimenta


Responder Citar

15/12/2005

Ipc$

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:
  ListBox1.Hint := ListBox1.Items[ListBox1.ItemIndex&93;;
  Application.ActivateHint(pt);
no final do evento onMouseMove.
Cheque se ItemIndex >=0, senão dará erro.


Responder Citar

15/12/2005

Adriano Santos

[quote:685bdad22a=´Adriano Santos´][quote:685bdad22a=´Enio Marconcini´][quote:685bdad22a=´ipc$´]Para o hint, acho que vc precisará criar um THintWindow


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

abraço[/quote:685bdad22a]

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][/quote:685bdad22a]


Tb olhei essa dica passada acho q pelo Luciano Pimenta[/quote:685bdad22a]

É isso msm, foi o Luciano.


Responder Citar

15/12/2005

Martins

Só para retificar, pois no fim da dica tem esse nome [b:290ee1b653]Walter Alves Chagas Junior[/b:290ee1b653], suponho q este seja o autor da dica.


valew!!


Responder Citar

15/12/2005

Adriano Santos

Só para retificar, pois no fim da dica tem esse nome [b:d6312512a9]Walter Alves Chagas Junior[/b:d6312512a9], suponho q este seja o autor da dica. valew!!


Vixi, falei merda...rsrs...


Responder Citar

15/12/2005

Martins

[quote]Só para retificar, pois no fim da dica tem esse nome [b:39d083a299]Walter Alves Chagas Junior[/b:39d083a299], suponho q este seja o autor da dica. valew!!


Vixi, falei merda...rsrs...[/quote:39d083a299]

Esquenta não [b:39d083a299]Adriano[/b:39d083a299], afinal tem lá no inicio ´ dica do editor´, então normalz, relaxa.

Abaraços!!!


Responder Citar

15/12/2005

Adriano Santos

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]


Responder Citar

15/12/2005

Eniorm

Amigos, veja como ficou o codigo,

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&93;;
    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


Responder Citar

15/12/2005

Adriano Santos

[quote:49ef254e3f=´Enio Marconcini´]Amigos, veja como ficou o codigo,

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&93;;
    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[/quote:49ef254e3f]


É 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


Responder Citar

16/12/2005

Adriano Santos

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


Responder Citar