Ajuda - Busca - Membros - Calendário
Versão Completa: ListView
Fórum Script Brasil > Programação & Desenvolvimento > Delphi, Kylix
João Paulo Taraciuk
Bom dia
Estou utilizando um ListView para exibir dados, porém surgiu um problema, pesquisei mas não encontrei a solucao, estou alimentando o ListView assim:

CODE
procedure TForm1.Button1Click(Sender: TObject);
var
  Lista: TListItem;
begin
Lista:=ListView1.Items.Add;
Lista.SubItems.Add(Edit1.Text);
end;



Eu preciso executar um evento ao clicar em uma linha na coluna 1, e somente na 1, por que na 0 tem um checkbox,porém, não sei como faço para saber em que coluna cliquei.
algo como:
QUOTE
if (ColunaClicada = 1)then
ShowMessage('');

Se algumém puder me ajudar, eu agradeço.

Jhonas
QUOTE
não sei como faço para saber em que coluna cliquei do ListView .



CODE
procedure TForm1.ListView1Click(Sender: TObject);
begin
   showmessage('clicou no item ' + ListView1.Items.Item[ListView1.Selected.Index].Caption);
   showmessage('o indice do item é = ' + inttostr(ListView1.Selected.Index));
end;


abraço
João Paulo Taraciuk
E tem como saber qual o número da coluna que pertence o ítem que cliquei ? Se col 0, col1...
Poderia ser até o Título da coluna.
Jhonas
QUOTE
E tem como saber qual o número da coluna que pertence o ítem que cliquei ? Se col 0, col1...
Poderia ser até o Título da coluna.


João Paulo ... pelo visto nem testou o código não é ....

este código esta informando qual é o titulo clicado e qual é o indice da coluna

abraço
João Paulo Taraciuk
No primeiro ShowMessage, retorna: clicou no item // aparece em branco o local onde deveria aparecer o título
No segundo mostra o numero da linha clicada, tem algo que eu tenha que mexer no listview para que aparece o numero da coluna?
Ou de repente se eu pegar a posicao, a coordenada do listview que foi clicada, já resolveria o meu problema
Jhonas
QUOTE
Ou de repente se eu pegar a posicao, a coordenada do listview que foi clicada, já resolveria o meu problema


para o que voce está querendo .. sim

Mude a propriedade ViewStyle do ListView e faça o teste

abraço
João Paulo Taraciuk
Bom, o view style dele está como vsReport, ShowColumnHeaders está como true, consigo pegar a posicao do mouse, mas somente no form todo com o CursorPos(), você saberia um macete pra pegar a posicao do mouse dentro do componente ?
Porque se eu coloco pra pegar a posicao X com o CursorPos(), quando movimenta o form, troca de lugar, o número muda.
Jhonas
Não use coordenadas do mouse .. complica muito ... siga a sua ideia inicial

CODE
if (ListView1.Selected.Index = 1) then
ShowMessage('');


abraço

Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2012 Invision Power Services, Inc.