Como aplicar máscara de IP em uma string ou Edit
Certo dica li um comentário aqui na comunidade sobre como aplicar uma máscara de IP,
e procurando na internet encontre algo e vou compartilhar com vocês.
Vamos ao código!
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
52
53
54
55
56
57
58
| unit Unit2;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm2 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
uses
MaskUtils;
// função entrontrada na internet
function Mascara(edt: String;str:String):string;
var
i : integer;
begin
for i := 1 to Length(edt) do
begin
if (str[i] = '9') and not (edt[i] in ['0'..'9']) and (Length(edt)=Length(str)+1) then
delete(edt,i,1);
if (str[i] <> '9') and (edt[i] in ['0'..'9']) then
insert(str[i],edt, i);
end;
result := edt;
end;
// exemplo utilizando esta função
procedure TForm2.Button1Click(Sender: TObject);
begin
ShowMessage( Mascara('192168000010','999.999.999.999') );
end;
// alternativa usando as funções já disponíveis do Delphi
procedure TForm2.Button2Click(Sender: TObject);
begin
ShowMessage( FormatMaskText('000\.000\.000\.000;0;', '192168000019'));
end;
end. |
unit Unit2;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm2 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
uses
MaskUtils;
// função entrontrada na internet
function Mascara(edt: String;str:String):string;
var
i : integer;
begin
for i := 1 to Length(edt) do
begin
if (str[i] = '9') and not (edt[i] in ['0'..'9']) and (Length(edt)=Length(str)+1) then
delete(edt,i,1);
if (str[i] <> '9') and (edt[i] in ['0'..'9']) then
insert(str[i],edt, i);
end;
result := edt;
end;
// exemplo utilizando esta função
procedure TForm2.Button1Click(Sender: TObject);
begin
ShowMessage( Mascara('192168000010','999.999.999.999') );
end;
// alternativa usando as funções já disponíveis do Delphi
procedure TForm2.Button2Click(Sender: TObject);
begin
ShowMessage( FormatMaskText('000\.000\.000\.000;0;', '192168000019'));
end;
end.
Repare que ‘192168000019’ é 192 168 000 019, assim é possível colocar o ponto
no lugar correto.
Caso queira passar o texto para uma Edit é muito simples:
1
2
3
4
| procedure TForm2.Button2Click(Sender: TObject);
begin
ShowMessage( FormatMaskText('000\.000\.000\.000;0;', '192168000019'));
end; |
procedure TForm2.Button2Click(Sender: TObject);
begin
ShowMessage( FormatMaskText('000\.000\.000\.000;0;', '192168000019'));
end;
Fonte de referência: https://www.devmedia.com.br/forum/firemonkey-mask-edit-tcp-ip/599503
Este é um exemplo simples de aplicação de máscaras.
Dúvidas ou sugestões? Deixe o seu comentário.
-
Giovani Da Cruz
-
3.518 views
- 0 comentários
- 16 de agosto de 2019
Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!
Posts Relacionados - Continue Aprendendo