Array Dinâmico em delphi

14/09/2020

6

Estou tentando adicionar valores no vetor e listar


procedure TFormPrincipal.btnCadastrarClick(Sender: TObject);
begin
  try
    Funcionario := TFuncionario.Create;
    Vendedor := TVendedor.Create;
    Gestor := TGestor.Create;

    if CbCargo.ItemIndex = 0 then
    begin

      Vendedor.nome := edtNome.Text;
      Vendedor.cpf := edtCPF.Text;
      Vendedor.salario := StrToCurr(edtSalario.Text);

      tamanho := tamanho + 1;

      setLength(VetorFunc, tamanho);

      VetorFunc[tamanho] := Vendedor;

      MCadastro.Lines.Add('O Funcionário : ' + VetorFunc[tamanho].nome +
        ' foi cadastrado!');

    end
    else
    begin
      Gestor.nome := edtNome.Text;
      Gestor.cpf := edtCPF.Text;
      Gestor.salario := StrToCurr(edtSalario.Text);
      Gestor.horaExtra := StrToCurr(edtHoraExtra.Text);

      tamanho := tamanho + 1;

      setLength(VetorFunc, tamanho);

      VetorFunc[tamanho - 1] := Gestor;
    end;
  finally
    { Funcionario.Free;
      Gestor.Free;
      Vendedor.Free }
  end;
end;

procedure TFormPrincipal.btnLimparClick(Sender: TObject);
begin
  edtNome.Clear;
  edtCPF.Clear;
  edtHoraExtra.Clear;
  edtSalario.Clear;
  CbCargo.ItemIndex := -1;
end;

procedure TFormPrincipal.btnListarClick(Sender: TObject);
var
  i, nRegistro: integer;

begin

  MCadastro.Lines.Add('');
  nRegistro := 0;

  for i := 0 to tamanho - 1 do
  begin
    Funcionario := VetorFunc[i];
    nRegistro := nRegistro + 1;

    MCadastro.Lines.Add('Nome: ' + Vendedor.nome + #13#10 + 'CPF: ' +
      Vendedor.cpf + #13#10 + 'Salário R$ ' + CurrToStr(Vendedor.salario));

  end;
Responder

Post mais votado

14/09/2020

ok. e qual é a dúvida / dificuldade ?
aparentemente há um problema na listagem do conteúdo:
procedure TFormPrincipal.btnListarClick(Sender: TObject);
var
  i: integer;
begin
  MCadastro.Clear;

  for i := Low(VetorFunc) to High(VetorFunc) do
  begin
    MCadastro.Lines.Add('Nome: ' + VetorFunc[i].Nome + #13#10 + 'CPF: ' +
      VetorFunc[i].CPF + #13#10 + 'Salário R$ ' + CurrToStr(VetorFunc[i].Salario));
  end;
end;


Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar