Curinga Postado Março 2, 2005 Denunciar Share Postado Março 2, 2005 No meu programa de cadastro, tem um EditMask para o CPF, q valida o CPF se ele for verdqadeiro, porém, se eu sair dele com o campo vazio, ele da erro.Então minha duvida e minha pergunta é a seguinte:Como eu faço para sair do EditMask com o campo vazio sem que ele de um erro, pedindo pra que eu digite o CPF.aki vai a forma no qual eu estou fazendo:function TCadastro.CPF(num: string): boolean;var n1,n2,n3,n5,n6,n7,n9,n10,n11: integer; d1,d2: integer; digitado, calculado: string;begin n1:=StrToInt(num[1]); {1} n2:=StrToInt(num[2]); {2} n3:=StrToInt(num[3]); {3} n5:=StrToInt(num[5]); {4} n6:=StrToInt(num[6]); {5} n7:=StrToInt(num[7]); {6} n9:=StrToInt(num[9]); {7} n10:=StrToInt(num[10]); {8} n11:=StrToInt(num[11]); {9} d1:=n11*2+n10*3+n9*4+n7*5+n6*6+n5*7+n3*8+n2*9+n1*10; d1:=11-(d1 mod 11); if d1>=10 then d1:=0; d2:=d1*2+n11*3+n10*4+n9*5+n7*6+n6*7+n5*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;NO EVENTO ON EXIT DO EDITMASK: If NOT cpf(EdtCPF.text) then Begin messagebox(Application.Handle, Pchar ('O CPF ' +EdtCPF.Text+ ' não existe, deseja continuar assim mesmo?'), 'Atenção', MB_OK+MB_ICONWARNING+MB_DEFBUTTON1); EdtCPF.SetFocus; EndOnde esta o erro?valeu pela atenção....Aguardo resposta.... Link para o comentário Compartilhar em outros sites More sharing options...
0 Ricardo_PF Postado Março 2, 2005 Denunciar Share Postado Março 2, 2005 Curinga, você tentou testar se o campo text do edit está preenchido antes de validar um provável valor digitado lá...Valeu! Link para o comentário Compartilhar em outros sites More sharing options...
0 an_cp Postado Março 2, 2005 Denunciar Share Postado Março 2, 2005 Use o seguinte testeIf Pos ( ' ', EditCpf.Text ) = 0 ThenBegin Execute o Procedimento de verificação do Cpf.End ;Eu trabalho com isso quase o dia inteiro, vai por mim q dá certo.Obs. As aspas não são juntas, porque a consulta esta perguntando sobre um caracter em bco, q corresponde a sua mascara. '###.###.###-##;1; ' ; Link para o comentário Compartilhar em outros sites More sharing options...
0 Curinga Postado Março 2, 2005 Autor Denunciar Share Postado Março 2, 2005 Pessoal, eu ainda não testei as dicas, mas desde já, agradeço a atenção.AN_CPO programa ele valida perfeitamente o CPF, porém, eu gostaria que quando eu entrasse no campo e saísse e deixasse em branco o campo CPF, ele não desse erro, o meu EDIT é MASK, em tão, quando eu entro no campo, ele aparece assim ( . . - ), quando eu deixo em branco, ele me emite uma mensagem que esse numero não é um numero inteiro, coisa desse tipo, então eu gostaria de saber como eu faço, pra entrar no campo do CPF, e ao sair se ele estiver em branco, ele pulasse, ou seja, não emitisse nenhuma mensagem de erro, e simplesmente pula para o proximo campo, sem mensagem alguma.Eu vou testar as dicas e logo eu coloco a resposta se deu ou não certo.Pessoal, valeu por enquanto...RICARDO_PFo campo já esta preenchido, como eu falei, ele já ta com o Mask da seguinte forma ( . . - ), então quando entro no campo ele aparece assim ( . . - ) Link para o comentário Compartilhar em outros sites More sharing options...
0 Curinga Postado Março 3, 2005 Autor Denunciar Share Postado Março 3, 2005 Pessoal, não deu certo, quando eu entro no campo CPF, e saio, se ele estiver vazio ele não da erro, porém, o CPF ele sempre acusa que é inválido, arrumo um, porém, o outro deu problema.Bom o esquema ta aí em cima, caso algm possa me ajudar, eu fico agradecido.Galera, valeu mais uma vz.Aguardo respostas... Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Curinga
No meu programa de cadastro, tem um EditMask para o CPF, q valida o CPF se ele for verdqadeiro, porém, se eu sair dele com o campo vazio, ele da erro.
Então minha duvida e minha pergunta é a seguinte:
Como eu faço para sair do EditMask com o campo vazio sem que ele de um erro, pedindo pra que eu digite o CPF.
aki vai a forma no qual eu estou fazendo:
function TCadastro.CPF(num: string): boolean;
var
n1,n2,n3,n5,n6,n7,n9,n10,n11: integer;
d1,d2: integer;
digitado, calculado: string;
begin
n1:=StrToInt(num[1]); {1}
n2:=StrToInt(num[2]); {2}
n3:=StrToInt(num[3]); {3}
n5:=StrToInt(num[5]); {4}
n6:=StrToInt(num[6]); {5}
n7:=StrToInt(num[7]); {6}
n9:=StrToInt(num[9]); {7}
n10:=StrToInt(num[10]); {8}
n11:=StrToInt(num[11]); {9}
d1:=n11*2+n10*3+n9*4+n7*5+n6*6+n5*7+n3*8+n2*9+n1*10;
d1:=11-(d1 mod 11);
if d1>=10 then
d1:=0;
d2:=d1*2+n11*3+n10*4+n9*5+n7*6+n6*7+n5*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;
NO EVENTO ON EXIT DO EDITMASK:
If NOT cpf(EdtCPF.text) then
Begin
messagebox(Application.Handle, Pchar ('O CPF ' +EdtCPF.Text+ ' não existe, deseja continuar assim mesmo?'), 'Atenção', MB_OK+MB_ICONWARNING+MB_DEFBUTTON1);
EdtCPF.SetFocus;
End
Onde esta o erro?
valeu pela atenção....
Aguardo resposta....
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados