Páginas

domingo, 2 de julho de 2017

Função para Formatar CPF, CNPJ, Telefone e Celular - Delphi

Vamos criar uma função para formatar Strings, CPF, CNPJ, Telefone e Celular.
Em nossa função para não a ver erros em um campo já formatado ou até mesmo um campo que não estiver no seu formato correto, vamos remover os  . - / ( ) .
Vamos criar um nova Unit: File - New - Unit-Delphi.

Copia o comando a baixo e cola em sua unit




unit funformatartexto;

interface

uses
   winapi.windows, System.SysUtils, System.MaskUtils;

Function formacpf(numtexto:String):String;
Function formacnpj(numtexto:String):String;
Function formatelefone(numtexto:String):String;
Function formacelular(numtexto:String):String;
implementation

//Formata número CPF
Function formacpf(numtexto:String):String;
begin
    Delete(numtexto,ansipos('.',numtexto),1);  //Remove ponto .
    Delete(numtexto,ansipos('.',numtexto),1);
    Delete(numtexto,ansipos('-',numtexto),1); //Remove traço -
    Delete(numtexto,ansipos('/',numtexto),1); //Remove barra /
    Result:=FormatmaskText('000\.000\.000\-00;0;',numtexto); // Formata os numero

end;
//Formata número CNPJ
Function formacnpj(numtexto:String):String;
begin
    Delete(numtexto,ansipos('.',numtexto),1);  //Remove ponto .
    Delete(numtexto,ansipos('.',numtexto),1);
    Delete(numtexto,ansipos('-',numtexto),1); //Remove traço -
    Delete(numtexto,ansipos('/',numtexto),1); //Remove barra /
    Result:=FormatmaskText('00\.000\.000\/0000\-00;0;',numtexto);

end;
//Formata número telefone fixo
Function formatelefone(numtexto:String):String;
begin
    Delete(numtexto,ansipos('-',numtexto),1);  //Remove traço -
    Delete(numtexto,ansipos('-',numtexto),1);
    Delete(numtexto,ansipos('(',numtexto),1); //Remove parenteses  (
    Delete(numtexto,ansipos(')',numtexto),1); //Remove parenteses  )
    Result:=FormatmaskText('\(00\)0000\-0000;0;',numtexto); // Formata os numero
end;
//Formata número celular
Function formacelular(numtexto:String):String;
begin
    Delete(numtexto,ansipos('-',numtexto),1);  //Remove traço -
    Delete(numtexto,ansipos('-',numtexto),1);
    Delete(numtexto,ansipos('(',numtexto),1); //Remove parenteses  (
    Delete(numtexto,ansipos(')',numtexto),1); //Remove parenteses  )
    Result:=FormatmaskText('\(00\)00000\-0000;0;',numtexto); // Formata os numero
end;


end.

Como usar essa função?
Adicionamos a nossa uses a UNIT funformatartexto 


no Evento OnExit do seu Edit ou DBEdit usamos assim:
Edit1.Text:=formacpf(Edit1.Text);         // para formatar CPF 000.000.000-00
Edit1.Text:=formacnpj(Edit1.Text);       // para formatar CNPJ 00.000.000/0000-00
Edit1.Text:=formatelefone(Edit1.Text); // para formatar Telefone (00)0000-0000
Edit1.Text:=formacelular(Edit1.Text);   // para formatar Celular (000)0000-0000





Nenhum comentário:

Postar um comentário