Fórum Delphi Erro de if/vetor. #595226

02/07/2018

0

Estou com problemas no validar os campos, a função "ValidarCampos" vai validar se as caixinhas estão vazias, porém logo abaixo
Tem "lachou := AchouCodigoVetor;" e o problema que ao invés de aparecer apenas o erro do "ValidarCampos" aparece também o erro " ERRO! Já existe um aluno cadastrado com esse código" junto.


if ValidarCampos then
begin
showmessage('ERRO! Preencha todos os campos!')
end else


lachou := AchouCodigoVetor;
if lachou then
begin
showmessage('ERRO! Já existe um aluno cadastrado com esse código')
end
else
begin
i := 1;
lachou := false;
while (i<=30) do
begin

if (vetaluno[i].nome = '') then
begin
lachou := true;
break;
end;
i := i+1;
end;
if lachou then
begin

//Adiciona no vetor
vetaluno[i].codigo := strtoint(codigo.Text);
vetaluno[i].nome := nome.Text;
vetaluno[i].cpf := cpf.Text;
vetaluno[i].email := email.Text;
vetaluno[i].celular := celular.Text;
vetaluno[i].idade := strtoint(idade.Text);

listar.Click;

end;
end;
end;
Gabriel

Gabriel

Responder

Post mais votado

02/07/2018

não avaliei as condições utilizadas, mas acredito que o problema esteja nos aninhamentos if/begin. Tente assim:

if ValidarCampos then
  showmessage('ERRO! Preencha todos os campos!')
else
begin
  lachou := AchouCodigoVetor;

  if lachou then
    showmessage('ERRO! Já existe um aluno cadastrado com esse código')
  else
  begin
    i := 1;
    lachou := false;

    for i := 1 to 30 do
    begin
      lachou := (vetaluno[i].nome = '')
      if lachou then
        break;
    end;

    if lachou then
    begin
      //Adiciona no vetor
      vetaluno[i].codigo := strtoint(codigo.Text);
      vetaluno[i].nome := nome.Text;
      vetaluno[i].cpf := cpf.Text;
      vetaluno[i].email := email.Text;
      vetaluno[i].celular := celular.Text;
      vetaluno[i].idade := strtoint(idade.Text);
      listar.Click;
    end;
  end;
end;

Emerson Nascimento

Emerson Nascimento
Responder

Gostei + 1

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

Aceitar