Mudar Mascara no dbedit

12/12/2009

4

  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;
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
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira