pessual estou utilizando esse codigo pra validar cpf e cnpj, porém quando coloco um cpf correto não consigo passar pra outro campo, sera que alguém pode me ajudar????tipo quando estiver certo o cpf quero que passe pra outro campo do formulario ao invés de aparecer a mensagem dizendo que o cnpj esta correto...entende?abraços
function CalculaCnpjCpf(Numero : String) : Boolean;
Var
i,d,b,
Digito : Byte;
Soma : Integer;
CNPJ : Boolean;
DgPass,
DgCalc : String;
begin
Result := False;
Numero := ApenasNumerosStr(Numero);
// Caso o número não seja 11 (CPF) ou 14 (CNPJ), aborta
Case Length(Numero) of
11: CNPJ := False;
14: CNPJ := True;
else Exit;
end;
// Separa o número do digito
DgCalc := '';
DgPass := Copy(Numero,Length(Numero)-1,2);
Numero := Copy(Numero,1,Length(Numero)-2);
// Calcula o digito 1 e 2
For d := 1 to 2 do begin
B := IIF(D=1,2,3); // BYTE
SOMA := IIF(D=1,0,STRTOINTDEF(DGCALC,0)*2);
for i := Length(Numero) downto 1 do begin
Soma := Soma + (Ord(Numero[I])-Ord('0'))*b;
Inc(B);
If (b > 9) And CNPJ Then
b := 2;
end;
Digito := 11 - Soma mod 11;
If Digito >= 10 then
Digito := 0;
DgCalc := DgCalc + Chr(Digito + Ord('0'));
end;
Result := DgCalc = DgPass;
end;
procedure Tfrmabas.EDTCPFExit(Sender: TObject);
var msg : string;
begin
if edtcpf.text = 'CPF' then
msg := 'CPF'
else
msg := 'CNPJ';
if CalculaCnpjCpf(edtcpf.Text) then
EDTPIS.SetFocus
else ShowMessage(msg+' Incorreto.');
EDTCPF.SetFocus;
end;
Editado por Micheus Incluída tag's CODE para melhorar a visualização. Utilize a identação também ;)
Pergunta
Guest --fabiola --
pessual estou utilizando esse codigo pra validar cpf e cnpj, porém quando coloco um cpf correto não consigo passar pra outro campo, sera que alguém pode me ajudar????tipo quando estiver certo o cpf quero que passe pra outro campo do formulario ao invés de aparecer a mensagem dizendo que o cnpj esta correto...entende?abraços
Editado por MicheusIncluída tag's CODE para melhorar a visualização. Utilize a identação também ;)
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
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.