Mudar Mascara no dbedit
12/12/2009
0
Boa noite galera fiz a seguinte procedure e coloquei no evento onexit do dbedit para mudar a mask, se for CFG ele coloca a mask de cgc, se for cpf ele adiciona a mask cpf. na hora de inserir funciona tudo perfeito, mais quando uso as setas do dbnavigator, pra olhar cadastro por cadastro, o cpf fica errado. segue a baixo a procedure.
procedure Tfrmfornecedor.cgccpf;
var
c : integer;
begin
c := Length(DBEdit1.Text);
if c > 11 then
begin
ADOQfornecedor.FieldByName('CGC').EditMask := '99.999.999/9999-99;0;_';
label1.Caption := 'CGC';
end
else
begin
ADOQfornecedor.FieldByName('CGC').EditMask := '999.999.999-99;0;_';
label1.Caption := 'CPF';
end;
end;
procedure Tfrmfornecedor.cgccpf;
var
c : integer;
begin
c := Length(DBEdit1.Text);
if c > 11 then
begin
ADOQfornecedor.FieldByName('CGC').EditMask := '99.999.999/9999-99;0;_';
label1.Caption := 'CGC';
end
else
begin
ADOQfornecedor.FieldByName('CGC').EditMask := '999.999.999-99;0;_';
label1.Caption := 'CPF';
end;
end;
José Polen
Curtir tópico
+ 0
Responder
Posts
15/12/2009
Paulo Silva
amigo vc colocou no evento on exit, nesse caso seria melhor colocar no evento
on datachange do datasource mais eu nao sei se da certo nao, a melhor solucao seria criar um
campo para identificar se é cpf ou cnpj tipo um dbcombobox, ai vc faria o teste c o cpf ou cnpj é valido
e formata ele faz uma function para fazer isso é so uma ideia!! ^^
function FormataCNPJ(st: shortstring): shortstring;
var
qtn : integer;
cnpj, str: shortstring;
begin
if st='' then
begin
raise create.exception('CNPJ caracteres invalidos! ');
end
else
str:= removeInvalid( trim(str)); // remove caracteres tipo ponto ou barra
qtn:=lengt(str);
if qtn=14
then
begin
if validaCNPJ(str) // testa se o CNPJ é mesmo valido
then
begin
cnpj:=copy(str, 1,2) +'.'+copy(str, 3,3)+'.'+copy(str, 6,3)+'/'+copy(str, 10,4)+'-'+copy(str, 13,2) ;
end
else raise exception.create('CNPJ inválido!')
end
else
begin
raise exception.create('O numero digitado nao corresponde a um CNPJ valido')
end;
result:=CNPJ;
end;
seria mais ou menos isso!!
Responder
Clique aqui para fazer login e interagir na Comunidade :)