AJUDA COM LISTVIEW NO DELPHI!

17/08/2020

0

Boa noite, estou com seguinte problema!
sei que é uma coisa simples mas estou iniciando agora na programação e estou com uma dúvida no componente LISTVIEW!
Recebo uma linha com vários dados e preciso adicionar cada dados deste mesmo em diferentes colunas do listview, porém tenho um filtro nas linhas em que recebo.
Exemplo:
Linha: [Materiais-TIJOLO][Horário-14:39][Vendedor-Anderson][Local-Brasil][Rua-Adanilta]
- Preciso adicionar no listview na coluna MATERIAIS o "TIJOLO" e por ai em diante...
Porém preciso retirar esses dados da linha citada acima!.
Exemplo:
MATERIAIS HORARIO Vendedor
TIJOLO 14:39 Anderson
Jose

Jose

Responder

Post mais votado

17/08/2020

criei um ListView, alterei sua propriedade ViewStyle para vsReport.
o exemplo abaixo tem um stringlist lstLinhas. ele existe porque eu não sei de onde você obtém as linhas.
há também a criação das colunas. as colunas podem ser criadas em tempo de projeto; não precisa ser em tempo de execução, como no exemplo.
var
  lstLinhas: TStringList;
  lstLinha: TStringList;
  lstConteudo: TStringList;
  iLinha, i: integer;
begin
  lstLinhas := TStringList.Create;
  lstLinhas.Add('[Materiais-TIJOLO][Horário-14:39][Vendedor-Anderson][Local-Brasil][Rua-Adanilta]');
  lstLinhas.Add('[Materiais-TELHA][Horário-13:39][Vendedor-Maurício][Local-Brasil][Rua-Sem nome]');
  lstLinhas.Add('[Materiais-CAL][Horário-11:39][Vendedor-Sérgio][Local-Brasil][Rua-Com nome]');

  lstLinha := TStringList.Create;
  lstLinha.Delimiter := ',';
  lstLinha.StrictDelimiter := True;

  lstConteudo := TStringList.Create;
  lstConteudo.Delimiter := '-';
  lstConteudo.StrictDelimiter := True;

  ListView1.Columns.Clear;
  ListView1.Columns.Add.Caption := 'Material';
  ListView1.Columns.Add.Caption := 'Horário';
  ListView1.Columns.Add.Caption := 'Vendedor';
  ListView1.Columns.Add.Caption := 'Local';
  ListView1.Columns.Add.Caption := 'Rua';

  ListView1.Items.Clear;

  for iLinha := 0 to lstLinhas.Count-1 do
  begin
    lstLinha.DelimitedText := StringReplace(lstLinhas[iLinha],'][','],[',[rfReplaceAll]);
    lstConteudo.DelimitedText := StringReplace(StringReplace(lstLinha[0],'[','',[]),']','',[]);

    ListView1.Items.Add.Caption := lstConteudo[1];

    for i := 1 to lstLinha.Count-1 do
    begin
      lstConteudo.DelimitedText := StringReplace(StringReplace(lstLinha[i],'[','',[]),']','',[]);
      ListView1.Items.Item[ListView1.Items.Count-1].SubItems.Add( lstConteudo[1] );
    end;
  end;
end;

Emerson Nascimento

Emerson Nascimento
Responder

Mais Posts

19/03/2021

Jose

MUITO OBRIGADO AJUDOU MUITO!!!!
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar