Código
var
n,Somatoria1,Somatoria2,DigVerif1,DigVerif2:integer;
CPF:String[12];
begin
if mskCpf.Text=''then
begin
MessageDlg('Digite um valor',mtError,[mbOK],0);
mskCpf.SetFocus;
end
else
begin
//obtem o número do cpf
cpf:=mskCPF.Text;
//calcula somatoria1
Somatoria1:=0;
for n :=1 to 9 do
begin
somatoria1:=somatoria1+ (Strtoint(cpf[n])*n);
end;
DigVerif1:=(Somatoria1 mod 11) mod 10;
Somatoria2:=0;
for n:=2 to 9 do
begin
Somatoria2:=Somatoria2+(strtoint(cpf[n])*(n-1));
end;
somatoria2:=somatoria2+(digVerif1*9);
DigVerif2:=(somatoria2 mod 11) mod 10;
if (digVerif1= Strtoint(cpf[11])) and
(digVerif2= Strtoint(cpf[12])) then
begin
MessageBeep(mb_OK);
Messagedlg('CPF Válido',mtinformation,[MbOK],0);
mskCPF.Clear;
mskCPF.SetFocus;
end
else
begin
messageBeep(mb_iconExclamation);
Messagedlg('CPF Falso',mtWarning,[mbOK],0);
mskCPF.Clear;
mskCPF.SetFocus;
end;
end;
end;
Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009