| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
paruba Novato

Registrado: Quinta-Feira, 26 de Junho de 2014 Mensagens: 49
|
Enviada: Dom Jan 04, 2015 2:23 am Assunto: [Resolvido] Listview - Selecionar com o mouse |
|
|
Olá pessoal!
Essa parecia ser fácil resolver, mas estou quebrando a cabeça...
Tenho um Listview em modo "Report", com as propriedades MultiSelect e RowSelect habilitadas. Eu gostaria de selecionar alguns itens da lista apenas clicando com o mouse em cada um deles, sem precisar pressionar Ctrl ou Shift. Alguém tem alguma idéia para fazer isso?
Eu tentei o seguinte código, mas não funcionou:
| Código: |
procedure TfrmMain.ListView1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
Item: TListItem;
begin
Item := lvwPCList.GetItemAt(X, Y);
if (Item <> nil) then
Item.Selected := (not Item.Selected);
end;
|
Agradeço!
Editado pela última vez por paruba em Qua Jan 07, 2015 10:18 am, num total de 1 vez |
|
| Voltar ao Topo |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Seg Jan 05, 2015 9:08 am Assunto: |
|
|
Simule o pressionamento da tecla "Ctrl" ao passar o mouse no ListView e solte a mesma tecla ao sair.
Exemplo:
Evento OnMouseEnter do ListView:
| Código: | procedure TForm1.ListView1MouseEnter(Sender: TObject);
begin
{ Mantém pressionada CTRL }
keybd_event(VK_CONTROL,0,WM_KEYDOWN,0);
end; |
Evento OnMouseLeave do ListView:
| Código: | procedure TForm1.ListView1MouseLeave(Sender: TObject);
begin
{ Libera (solta) CTRL }
keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0);
end; |
_________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin |
|
| Voltar ao Topo |
|
 |
paruba Novato

Registrado: Quinta-Feira, 26 de Junho de 2014 Mensagens: 49
|
Enviada: Seg Jan 05, 2015 7:41 pm Assunto: |
|
|
Obrigado pelo retorno, mas infelizmente também não funcionou dessa forma Você chegou a testar? |
|
| Voltar ao Topo |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Ter Jan 06, 2015 8:40 am Assunto: |
|
|
Sim, testei. Funciona como se propõe, seleciona mais de um item no ListView somente com o clique sem precisar de segurar a tecla "Ctrl".
Confirme se a opção MultiSelect do ListView está True.
Se não conseguir, poste seu e-mail que te mando um projeto simples de testes. _________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin |
|
| Voltar ao Topo |
|
 |
paruba Novato

Registrado: Quinta-Feira, 26 de Junho de 2014 Mensagens: 49
|
Enviada: Ter Jan 06, 2015 9:11 pm Assunto: |
|
|
Ok, entendi. Com esse procedimento que você passou eu não posso mais usar o evento OnMouseDown do ListView. Agora já está funcionando perfeitamente! Muito obrigado!
PS. Como faço para colocar este tópico como resolvido? |
|
| Voltar ao Topo |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Qua Jan 07, 2015 8:21 am Assunto: |
|
|
Que bom que funcionou, amigo.
Para colocar o tópico como "Resolvido":
Vá no seu primeiro post, clique em "Edit" e acrescente "[Resolvido]" no título do seu post. _________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin |
|
| Voltar ao Topo |
|
 |
paruba Novato

Registrado: Quinta-Feira, 26 de Junho de 2014 Mensagens: 49
|
Enviada: Qua Jan 07, 2015 10:18 am Assunto: |
|
|
| Muito obrigado e muito sucesso para você em 2015!! |
|
| Voltar ao Topo |
|
 |
|