Como aplicar uma máscara a uma String?
Fala galera da comunidade Show Delphi, tudo beleza?
Quantas vezes temos em uma string dados importantes como CPF, CNPJ, Telefones ou mesmo CEPs, mas temos somente os números e gostaríamos de exibir em um formato amigável para o usuário final, ou seja, aplicar uma máscara.
Felizmente o Delphi e o Lazaurus inclusive, nos proporcionam um modo muito fácil de resolver este problema.
Esta dica mostra como podemos aplicar uma mascara a uma
string de um modo muito fácil, esta função permite aplicar
qualquer mascara para uma string.
É necessário estar declarado MaskUtils na seção uses,
em versões unicode declare System.MaskUtils;
Para Lazarus ou Delphis mais antigos declare somente MaskUtils na seção uses
Função do Delphi / Lazarus: FormatMaskText(mascara, Texto)
Retorno: String
Exemplos de uso:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| procedure TForm1.Button1Click(Sender: TObject);
begin
// Aplicando máscara do CPF
ShowMessage(FormatMaskText('000\.000\.000\-00;0;', '51895752337'));
// Aplicando máscara do CNPJ
ShowMessage(FormatMaskText('00\.000\.000\/0000\-00;0;', '44732264000105'));
// Aplicando máscara do CEP
ShowMessage(FormatMaskText('00000\-000;0;', '99200000'));
// Aplicando máscara dE TELEFONE
ShowMessage(FormatMaskText('\(00\)000000009;0;', '11978563215'));
ShowMessage(FormatMaskText('\(00\)000000009;0;', '5434491111'));
end; |
procedure TForm1.Button1Click(Sender: TObject);
begin
// Aplicando máscara do CPF
ShowMessage(FormatMaskText('000\.000\.000\-00;0;', '51895752337'));
// Aplicando máscara do CNPJ
ShowMessage(FormatMaskText('00\.000\.000\/0000\-00;0;', '44732264000105'));
// Aplicando máscara do CEP
ShowMessage(FormatMaskText('00000\-000;0;', '99200000'));
// Aplicando máscara dE TELEFONE
ShowMessage(FormatMaskText('\(00\)000000009;0;', '11978563215'));
ShowMessage(FormatMaskText('\(00\)000000009;0;', '5434491111'));
end;
Esta dica funciona inclusive par o Firemonkey!
Para facilita ainda mais o entendimento, vamos postar o código inteiro da unit de exemplo:
Aqui o exemplo é um Lazarus, mas para o Delphi é muito similar.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
| unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
uses
MaskUtils;
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
// Aplicando máscara do CPF
ShowMessage(FormatMaskText('000\.000\.000\-00;0;', '51895752337'));
// Aplicando máscara do CNPJ
ShowMessage(FormatMaskText('00\.000\.000\/0000\-00;0;', '44732264000105'));
// Aplicando máscara do CEP
ShowMessage(FormatMaskText('00000\-000;0;', '99200000'));
// Aplicando máscara dE TELEFONE
ShowMessage(FormatMaskText('\(00\)000000009;0;', '11978563215'));
ShowMessage(FormatMaskText('\(00\)000000009;0;', '5434491111'));
end;
end. |
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
uses
MaskUtils;
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
// Aplicando máscara do CPF
ShowMessage(FormatMaskText('000\.000\.000\-00;0;', '51895752337'));
// Aplicando máscara do CNPJ
ShowMessage(FormatMaskText('00\.000\.000\/0000\-00;0;', '44732264000105'));
// Aplicando máscara do CEP
ShowMessage(FormatMaskText('00000\-000;0;', '99200000'));
// Aplicando máscara dE TELEFONE
ShowMessage(FormatMaskText('\(00\)000000009;0;', '11978563215'));
ShowMessage(FormatMaskText('\(00\)000000009;0;', '5434491111'));
end;
end.
Certo pessoal, acredito que tenha ficado bem esclarecido como utilizar a função. Espero que ajude a todos.
Dúvidas ou sugestões? Deixe o seu comentário!
Um abraço e até a próxima pessoal. Valeu!
-
Giovani Da Cruz
-
32.212 views
- 4 comentários
- 30 de março de 2015
Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!
Posts Relacionados - Continue Aprendendo
Muito boa a dica!!
muito boa
Gostaria de saber como ficaria pra TCP/IP
se puder me mostrar, por favor
e se tiver outro local para colocar essa ação além do click de um botão
Eu gostaria de algo bem semelhante ao que é no windows, se possivel
Vlw amigo, não sabia que essa função funcionava para Firemonkey