Seria bom ver a função pra saber como ela funciona. Mas eu tenho uma função que 
faz isso. Para usá-la basta colocar no evento OnExit do Edit: 

ConfereCPF(Sender as TCustomEdit);

Segue a função abaixo:

function ConfereCPF(Edit : TMaskEdit) : Boolean;
var n1,n2,n3,n4,n5,n6,n7,n8,n9,d1,d2: Integer;
    Digitado, Calculado, Num : String;
begin
    ConfereCpf := True;
    Num := Edit.Text;
    Num := StringReplace(Num, '.', '', [rfReplaceAll]);
    Num := StringReplace(Num, '-', '', [rfReplaceAll]);
    Num := StringReplace(Num, '_', '', [rfReplaceAll]);

    if (Trim(Num) <> '') then
    begin
        n1 := StrToInt (Num[1]);
        n2 := StrToInt (Num[2]);
        n3 := StrToInt (Num[3]);
        n4 := StrToInt (Num[4]);
        n5 := StrToInt (Num[5]);
        n6 := StrToInt (Num[6]);
        n7 := StrToInt (Num[7]);
        n8 := StrToInt (Num[8]);
        n9 := StrToInt (Num[9]);

        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[10] + Num[11];
        if (Calculado = Digitado) then
           ConfereCpf := True
        else
        begin
           ConfereCpf := False;
           raise exception.Create('CPF não confere!');
           Edit.SetFocus;
        end
    end;
end;



[As partes desta mensagem que não continham texto foram removidas]





-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

<*> Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
    [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a