ListView

19/12/2005

Como posso pegar somente as linhas selecionadas em um listView?
Abs


Felipeiw

Respostas

19/12/2005

Jairroberto

Olá, Felipe!

Veja o exemplo do método ´GetNextItem´ do objeto TCustomListView:

This example demonstrates how to retrieve all selected items in a ListView component and add the Caption of the selected ListItems to a ListBox component. procedure TForm1.Button1Click(Sender: TObject); var Item: TListItem; begin Item := ListView1.Selected; while Item <> nil do begin ListBox1.Items.Add(Item.Caption); Item := ListView1.GetNextItem(Item, sdAll, [isSelected]); end; end;



Um abraço,
Jair


Responder Citar

20/12/2005

Bruno Belchior

Uma outra maneira...
var
  Cont: Smallint;
begin
  for Cont := 0 to LstVw.SelCount - 1 do
    ShowMessage(LstVw.Items[Cont&93;.Caption);
end;



Responder Citar

20/12/2005

Michael

Olá Bruno!

O seu código não vai funcionar, pois o valor de Cont será sempre de 0 até o total de itens selecionados. Se eu selecionar dentre 10 elementos o primeiro, o quinto e o último, por exemplo, vou receber o primeiro, o segundo e o terceiro (0 até 2).

Uma alternativa seria:

var
  I: Integer;
begin
  for I := 0 to ListView.Items.Count - 1 do
    if ListView.Items[I&93;.Selected then
      FazAlgumaCoisa;
end;


[]´s


Responder Citar

20/12/2005

Bruno Belchior

É verdade...


Responder Citar