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