sexta-feira, 2 de outubro de 2015

Como obter e exibir todos os itens selecionados em uma TListBox de seleção múltipla

Este trecho de código mostra como podemos obter e exibir todos os itens selecionados em uma TListBox de seleção múltipla. Para executá-lo, coloque uma ListBox, um Memo e um Button em um formulário. Altere a propriedade MultiSelect da ListBox para True, adicione alguns itens e execute. Selecione um ou mais itens e clique no botão para visualizar o resultado. Note que usei um TStringList (classe concreta derivada de TStrings) para armazenar os itens selecionados. Veja o código:

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  selecionados: TStringList;
begin
  // para que este exemplo funcione corretamente, a ListBox
  // deverá permitir seleção múltipla
  // ListBox1.MultiSelect := True;
  selecionados := TStringList.Create;

  // vamos obter os itens selecionados na ListBox
  if ListBox1.SelCount > 0 then
    begin
      for i := 0 to ListBox1.Count - 1 do
        begin
          if ListBox1.Selected[i] then
            selecionados.Add(ListBox1.Items[i]);
        end;

        // vamos exibir os itens selecionados em um TMemo
        Memo1.Lines.Clear;
        Memo1.Lines.Add('Os itens selecionados são:');

        for i := 0 to selecionados.Count - 1 do
          Memo1.Lines.Add(selecionados[i]);
    end
  else
    ShowMessage('Nenhum item selecionado.');

  // vamos liberar o TStringList
  selecionados.Free;
end;

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.

Nenhum comentário:

Postar um comentário