Preenchendo ListView em tempo de Execução

O Listview é um componente muito usado para exibição de informações no Firemonkey tanto quanto o dbgrid/grid é usado na VCL. Existem duas formas de popular um listview quando estamos desenvolvimento nosso app, são elas:

  • LiveBindings
  • Via código

Preparando o ambiente

Para o exemplo usaremos banco firebird, usaremos a base de dados de exemplo EMPLOYEE.FDB, que está localizada na pasta

Firebird 2.1

C:Program Files (x86)FirebirdFirebird_2_1examplesempbuild

Firebird 2.1 

C:Program Files (x86)FirebirdFirebird_2_5examplesempbuild

Firebird 3.0 

C:Program Files (x86)FirebirdFirebird_3_0examplesempbuild

Se a instalação realizada foi feita padrão.

Colocaremos um FDConnection e um FDTable para acessar a tabela COUNTRY.

Usando Livebindings

O que é o Livebindings

É uma tecnologia de ligação de dados introduzida no Delphi em versão XE2, que ajuda a desenvolver aplicações que realizem manipulação de dados. O LiveBindings foi adicionado devido a inclusão do FireMonkey, onde não há os chamados componentes Data-Aware. Ao invés da criação desses componentes optou-se por criar um novo mecanismo de data-binding, o que foi uma decisão muito feliz. No caso do FireMonkey, os componentes podem ser ligados ao DataSource de maneira relativamente simples e de forma visual.

Como usar Livebindings

Quando clica com botão direito sobre o componente que deseja fazer o bindings, no menu de contexto tem a opção Bind Visualy, essa opção abrirá o LiveBindings Designer:

Bind Visualy
Bind Visualy

 

LiveBindings Designer
LiveBindings Designer

Configurando a ligação dos dados

Primeiro você deve acessar o fields editor e adicionar os campos, após isso eles irão aparecer no LiveBindings Designer e aí é só clicar nos campos e arrastar até a propriedade do listview que deseja que exiba as informação, ficará assim no final:

LiveBindings Designer Configurado
LiveBindings Designer Configurado

Agora em tempo de execução você já conseguirá ver como ficará o listview.

Usando códigos para preencher no listview

Crie a procedure

Essa procedure será responsável por inserir no listview os itens.

procedure TForm1.PreencheLista(Texto, Detalhe1, Detalhe2, Detalhe3: String;
Chave: Integer; lst: TListView);
var
ListViewItem: TListViewItem;//declarando a variável que sera usada
begin
//instanciando um novo ListBoxItem
ListViewItem := lst.Items.Add;
//Configurando o texto principal
ListViewItem.Text := Texto;
//configurando o texto detalhe
ListViewItem.Detail := Detalhe1;

// Quando o listview está como multidetail
{ListViewItem.Data[TMultiDetailAppearanceNames.Detail1] := Img;
ListViewItem.Data[TMultiDetailAppearanceNames.Detail2] := Detalhe2;
ListViewItem.Data[TMultiDetailAppearanceNames.Detail3] := Detalhe3;}

ListViewItem.Tag := Chave;
end;

 

Percorra a tabela para inserir no listview

Nesse caso foi a tabela, mas pode ser qualquer lista de dados.

FDTable1.Active := True;
FDTable1.First;
if not FDTable1.IsEmpty then
begin
FDTable1.first;
repeat
PreencheLista(FDTable1COUNTRY.AsString, FDTable1CURRENCY.AsString, ”, ”,     0, ListView2);
FDTable1.Next;
until FDTable1.eof;
end;

Exemplo

Nosso exemplo ficou assim:

Exemplo Listview
Exemplo Listview

Preencha seus dados para baixar o exemplo:



Conclusão

É muito simples preencher um listview, com livebindings é muito rápido e simples, mas poderá haver momentos que inserir na “unha”, seja necessário, use conforme sua necessidade.

 

Abraço!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *