Fórum Como saber qual subitem do TListview foi selecionado? #182651
17/09/2003
0
Estou tendo dificuldades em saber qual o subitem de um item no Listview foi selecionado, quando se clica no próprio ?
Alguem teria alguma sugestão ?
Pierre
Alguem teria alguma sugestão ?
Pierre
Pmark
Curtir tópico
+ 0
Responder
Posts
17/09/2003
4_olho
Tente algo como :
No evento OnClick da ListView :
se estiver usando uma tabela
No evento OnClick da ListView :
SuaTabela.RecNo:=ListView1.Selected.Index+1;
se estiver usando uma tabela
Responder
Gostei + 0
18/09/2003
Pmark
Obrigado ´4_olho´ (?)
Eu consegui resolver de outra forma, no meu caso especifico eu precisa saber qual subitem de um item selecionado foi clicado no ListView.
Abaixo o código que criei:
Eu consegui resolver de outra forma, no meu caso especifico eu precisa saber qual subitem de um item selecionado foi clicado no ListView.
Abaixo o código que criei:
procedure TForm1.ListView1SelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean);
var
Coluna, I, OffSet : Integer;
begin
if not Selected then
Exit;
OffSet := ListView1.Columns[0].Width;
if (PosX < OffSet) then
Coluna := - 1
else
for I := 1 To Item.SubItems.Count do
begin
if (PosX > OffSet) and (PosX < OffSet + ListView1.Columns[I].Width) then
Coluna := I - 1;
OffSet := OffSet + ListView1.Columns[I].Width;
end;
{ coluna armazena qual coluna(subitem) foi clicada }
if Coluna >= 0 then { troca imagem se for coluna de subitem }
if Item.SubItemImages[Coluna] = 3 then
Item.SubItemImages[Coluna] := 4
else
Item.SubItemImages[Coluna] := 3;
end;
procedure TForm1.ListView1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
{ descobre aonde foi clicado }
PosX := X;
PosY := Y;
end;
procedure TForm1.ListView1Click(Sender: TObject);
var
PosItem : Integer;
begin
{ converte a posição (x,y) para o item clicado }
PosItem := (PosY div 17) ;
if PosItem <= ListView1.Items.Count then
ListView1SelectItem(nil, ListView1.Items.Item[PosItem - 1], True);
end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)