Como verificar/Validar valores de entrada em um TEdit?
Com a Função é possível permitir a entrada de somente letras, números ou letras e números,
muito útil para a validação de alguns campos.
Para utilizar a função é necessário declarar Windows na seção Uses,
em versões unicode declare WinApi.Windows.
function ValidateField(var Key: Char; TipoFiltro: Byte = 0): Boolean;
Explicando a Função:
Key é a variável que contém o carácter a ser validado.
Tipo de Filtro Indica a validação a ser aplicada. (Opcional).
Abaixo, segue o código fonte da função:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| function ValidateField(var Key: Char; TipoFiltro: Byte = 0): Boolean;
function IsDigit(Key : Char) : Boolean;
begin
Result := (Key in ['0'..'9']);
end;
begin
if not (Key in [#8, #37, #38, #39, #40, #46]) then
case TipoFiltro of
0 : if not (IsCharAlphaNumeric(Key)) then Key := #0; // Aceita letras e números
1 : if not (IsCharAlpha(Key)) then Key := #0; // Aceita letras
2 : if not (IsDigit(Key)) then Key := #0; // Aceita Números
else
raise Exception.Create('Tipo de filtro inválido.');
end;
Result := (not (Key = #0));
end; |
function ValidateField(var Key: Char; TipoFiltro: Byte = 0): Boolean;
function IsDigit(Key : Char) : Boolean;
begin
Result := (Key in ['0'..'9']);
end;
begin
if not (Key in [#8, #37, #38, #39, #40, #46]) then
case TipoFiltro of
0 : if not (IsCharAlphaNumeric(Key)) then Key := #0; // Aceita letras e números
1 : if not (IsCharAlpha(Key)) then Key := #0; // Aceita letras
2 : if not (IsDigit(Key)) then Key := #0; // Aceita Números
else
raise Exception.Create('Tipo de filtro inválido.');
end;
Result := (not (Key = #0));
end;
Exemplos de uso
1
2
3
4
5
6
7
8
9
10
11
| procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
{ Alterando o tipo de filtro. }
ValidateField(Key, 2);
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
{ Utilizando valores default. }
ValidateField(Key);
end; |
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
{ Alterando o tipo de filtro. }
ValidateField(Key, 2);
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
{ Utilizando valores default. }
ValidateField(Key);
end;
Se preferir, você pode até criar um componente a partir de TEdit com as
funcionalidades da função.
-
InfusTec
-
6.138 views
- 0 comentários
- 23 de março de 2015
Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!
Posts Relacionados - Continue Aprendendo