Ir para conteúdo
Fórum Script Brasil
  • 0

Problema Com If


Marcos-rj

Pergunta

alguém saberia me dizer qual o problema deste IF.

quando clico no botão o if é ignorado totalmente.

procedure TFFiltroApre.BitBtn1Click(Sender: TObject);
begin
If CNPJ.Text = '__.___.___/____-__' Then begin
MessageBeep(64);
Showmessage ('FAVOR INFORMAR O CNPJ.');
cnpj.SetFocus
end else
begin
MessageBeep(64);
Showmessage (TUDO OK');
end
end;

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
Guest Visitante

Marcos, porque você não faz um teste se o CNJP é válido? veja o código abaixo:

Função:

Function ValidaCNPJ(CNPJstr : string) : boolean;
var
dig1,dig2,i,cal : integer;
digitos : array [1..14] of integer;
controle : boolean;
begin
controle := false;
if not((pos(' ',CNPJstr)<>0) or (CNPJstr = '')) then
begin
for i := 1 to length(CNPJstr) - 4 do // Copia string no vetor
begin
if i < 3 then
digitos[i] := StrToInt(CNPJstr[i])
else
if (i >= 3) and (i < 6) then
digitos[i] := StrToInt(CNPJstr[i+1])
else
if (i >= 6) and (i < 9) then
digitos[i] := StrToInt(CNPJstr[i+2])
else
if (i >= 9) and (i < 13) then
digitos[i] := StrToInt(CNPJstr[i+3])
else
if (i >= 13) then
digitos[i] := StrToInt(CNPJstr[i+4]);
end;
// Testa c é --> 00.000.000.000/0000-00
for i := 1 to 13 do
if not((digitos[i] = 0) and (digitos[i+1] = 0)) then
begin
controle := true;
break;
end;

if controle then // primeiro digito
begin
cal := (5 * digitos[1])+(4 * digitos[2])+(3 * digitos[3])+(2 * digitos[4])+
(9 * digitos[5])+(8 * digitos[6])+(7 * digitos[7])+(6 * digitos[8])+
(5 * digitos[9])+(4 * digitos[10])+(3 * digitos[11])+(2 * digitos[12]);

if ((cal mod 11) = 1)or((cal mod 11) = 0) then
dig1 := 0
else
dig1 := 11-(cal mod 11);

if dig1 = digitos[13] then // Compara o 1º se ok vai calcular o 2º digito
begin
cal :=(6 * digitos[1])+(5 * digitos[2])+(4 * digitos[3])+(3 * digitos[4])+
(2 * digitos[5])+(9 * digitos[6])+(8 * digitos[7])+(7 * digitos[8])+(6 * digitos[9])+
(5 * digitos[10])+(4 * digitos[11])+(3 * digitos[12])+(2 * digitos[13]);

if ((cal mod 11) = 1)or((cal mod 11) = 0) then
dig2 := 0
else
dig2 := 11-(cal mod 11);
// Testa o 2º digito, se ok cnpj valido
if dig2 = digitos[14] then
ValidaCNPJ := true
else
ValidaCNPJ := false;
end
else
ValidaCNPJ := false;
end
else
ValidaCNPJ := false;
end
else
ValidaCNPJ := false;
end;
Chamar a função:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if ValidaCNPJ(edit1.text) = false then ShowMessage('CNPJ inválido!');
  end;

end.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...