Jump to content

CHAT ACBr faça parte desse grupo
Converse diretamente com os moderadores e consultores do Projeto ACBr
Brindes exclusivos do ACBr

Saiba mais

Nova Loja Oficial
loja.projetoacbr.com.br
Ajude o projeto a crescer, com estilo

Comprar

Balança SM100 performance surpreendente

Tecnologia Japonesa   Teclado e Visor resistentes a água
Consumo inteligente de etiquetas   Baixo custo de manutenção
Comunicação Ethernet e WIFI independentes

Saiba mais

Impressora de Etiquetas ELGIN - L42 PRO

Protocolos PPLA, PPLB, ZPL, EPL (automático)
Porta USB padrão Opcionais: Ethernet, Serial, Paralela
Sensor de Etiquetas Móvel Garantia de 18 meses

Saiba mais

Duarte

ANSWERED ListView FireMonkey

Recommended Posts

Boa noite,

Estou tentado preencher um ListVier em run-time, pois via LiveBindings Desinger estou tendo problemas quanto ao uso de Thread e/ou Task. Veja parte do código. Lembrando que isso para FMX.

procedure T_frmPedido.SpeedButton1Click(Sender: TObject);
var
  fItem : TListViewItem;
begin
  try
    with _lvwItens do
    begin
      BeginUpdate;
      Items.Clear;

      with Pesquisa do
      begin
        First;

        while not Eof do
        begin
          fItem                                           := Items.Add;
          fItem.Text                                      := FieldByName('DESCRICAO').AsString;
          fItem.Data[TMultiDetailAppearanceNames.Detail1] := FieldByName('PRECO').DisplayText;
          fItem.Data[TMultiDetailAppearanceNames.Detail2] := FieldByName('ESTOQUE').DisplayText;
          fItem.Data[TMultiDetailAppearanceNames.Detail3] := FieldByName('MARCA').AsString;

          //Como adicionar a propriedade ItemHeader.text em run-time? O mesmo serve para Item.LookupData
          Next;
        end;
      end;
    end;
  finally
    EndUpdate;
  end;
end;

O grande problema é... preciso alimentar a propriedade Item.Header.Text via run-time e não estou conseguindo.

Share this post


Link to post
Share on other sites

Boa tarde, depois de muito quebrar a cabeça achei a solução, vou deixar aqui, caso alguém precise.

 

procedure InsertItemListView(AListView : TListView; ADataSet : TDataSet; AHeader, AText, ADetail, ADetail1, ADetail2, ADetail3 : string);
begin
  try
    AListView.BeginUpdate;
    AListView.Items.Clear;

    with ADataSet do
    begin
      First;

      while not Eof do
      begin
        if Trim(AHeader) <> '' then
          with AListView.Items.Add do
          begin
            Text    := ADataSet.FieldByName(AHeader).DisplayText;
            Purpose := TListItemPurpose.Header; //Aqui é o pulo do gato para add os Headers. Na verdade você add dois items, um será o Header e ou outro o item ou itens, sendo que podemos add vários itens tem do mesmo headers. No meu caso será um para cada. 
          end;

        with AListView.Items.Add do
        begin
          Text                                      := FieldByName(AText).DisplayText;
          Detail                                    := FieldByName(ADetail).AsString;
          Data[TMultiDetailAppearanceNames.Detail1] := FieldByName(ADetail1).DisplayText;
          Data[TMultiDetailAppearanceNames.Detail2] := FieldByName(ADetail2).DisplayText;
          Data[TMultiDetailAppearanceNames.Detail3] := FieldByName(ADetail3).DisplayText;
          Tag                                       := RecNo;
        end;

        Next;
      end;
    end;
  finally
    AListView.EndUpdate;
  end;
end;
 

  • Like 1

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...