Buscar

Correção de cpf e cnpj com edit mask

Código

//DECLARAÇOES NECESSARIAS

  private
    { Private declarations }
  public
    { Public declarations }
    function cpf(num:string):boolean;
    function cnpj(num:string):boolean;
  end;

var
  frmFornecedores: TfrmFornecedores;


implementation

uses DM_Fornecedor;

{$R *.dfm}

//FUNÇÃO CPF

function TfrmFornecedores.cpf(num:string):boolean;
var
n1,n2,n3,n4,n5,n6,n7,n8,n9:integer;
d1,d2:integer;
digitado,calculado:string;

begin
n1:=StrToInt(num[1]);
n2:=StrToInt(num[2]);
n3:=StrToInt(num[3]);
n4:=StrToInt(num[5]);
n5:=StrToInt(num[6]);
n6:=StrToInt(num[7]);
n7:=StrToInt(num[9]);
n8:=StrToInt(num[10]);
n9:=StrToInt(num[11]);

if (n1=n2) and (n2=n3) and (n3=n4) and (n4=n5) and (n5=n6)
and (n6=n7) and (n7=n8) and (n8=n9) then
cpf:=false
Else
Begin
d1:=n9*2+n8*3+n7*4+n6*5+n5*6+n4*7+n3*8+n2*9+n1*10;
d1:=11-(d1 mod 11);
if d1>=10 then d1:=0;

d2:=d1*2+n9*3+n8*4+n7*5+n6*6+n5*7+n4*8+n3*9+n2*10+n1*11;
d2:=11-(d2 mod 11);
if d2>=10 then d2:=0;

calculado:=IntToStr(d1)+IntToStr(d2);
digitado:=num[13]+num[14];

if calculado=digitado then
cpf:=true
else
cpf:=false;
end
end;


// FUNÇÃO CNPJ
function TfrmFornecedores.cnpj(num:string):Boolean;
var
n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12:integer;
d1,d2:integer;
digitado,calculado:string;

begin
n1:=StrToInt(num[1]);
n2:=StrToInt(num[2]);
n3:=StrToInt(num[4]);
n4:=StrToInt(num[5]);
n5:=StrToInt(num[6]);
n6:=StrToInt(num[8]);
n7:=StrToInt(num[9]);
n8:=StrToInt(num[10]);
n9:=StrToInt(num[12]);
n10:=StrToInt(num[13]);
n11:=StrToInt(num[14]);
n12:=StrToInt(num[15]);

if (n1=n2) and (n2=n3) and (n3=n4) and (n4=n5) and (n5=n6)
and (n6=n7) and (n7=n8) and (n8=n9) and (n9=n10) and (n10=n11) and (n11=n12) then
cnpj:=false
else
begin
d1:=n12*2+n11*3+n10*4+n9*5+n8*6+n7*7+n6*8+n5*9+n4*2+n3*3+n2*4+n1*5;
d1:=11-(d1 mod 11);
if d1>=10 then d1:=0;

d2:=d1*2+n12*3+n11*4+n10*5+n9*6+n8*7+n7*8+n6*9+n5*2+n4*3+n3*4+n2*5+n1*6;
d2:= 11-(d2 mod 11);
if d2>=10 then d2:=0;

calculado:=IntToStr(d1)+IntToStr(d2);
digitado:=num[17]+num[18];
if calculado=digitado then
cnpj:=True
else
cnpj:=false;
end
end;

// PROCEDIMENTOS DE PASSAGEM DE VALORES

 //PROCEDIMENTO PARA VERIFICAÇÃO DO CPF
procedure TfrmFornecedores.DBEdit13Exit(Sender: TObject);
var num:string;     //VARIAVEL QUE RECEBE O VALOR NA FUNÇÃO
begin
    num:=DBEdit13.Text;  //PASSANDO O VALOR PARA A FUNÇÃO
   if NOT cpf(DBEdit13.Text) then
   Begin
   ShowMessage('CPF INVALIDO!!!');
   DBEdit13.SetFocus;
   end
   Else
   ShowMessage('CPF VALIDO!!!');

   if (Sender is TDBEdit) then
    (Sender as TDBedit).color:= clwhite;

end;

//PROCEDIMENTO PARA VERIFICAÇÃO DO CNPJ
procedure TfrmFornecedores.DBEdit15Exit(Sender: TObject);
var num:string; //VARIAVEL QUE RECEBE O VALOR NA FUNÇÃO
begin
  num:=DBEdit15.Text; // PASSANDO O VALOR PARA A FUNÇÃO
  If not cnpj(DBedit15.Text) then
  Begin
  ShowMessage('CNPJ INVALIDO!!!');
  DBEdit15.SetFocus;
  End
  Else
  ShowMessage('CNPJ VALIDO!!!');

     if (Sender is TDBEdit) then
    (Sender as TDBedit).color:= clwhite;

end;

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Object pascal
Adicionada dia: 11/04/07
Por: Leonardo Costa Vieira
Visualizada: 6708 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009