quinta-feira, 2 de junho de 2011

Controlar ou limitar caracteres no Edit

O titulo do tópico acaba sendo um pouco limitado, mas o recurso que irei mostrar a seguir é muito simples e pode ser aplicado em qualquer componente utilizado para digitação de caracteres. Partindo do exemplo de um edit, denominado por exemplo para receber o CPF de uma pessoa, obviamente pode aceitar a digitação de números do "0" ao "9" e também o "." (Ponto) e o "-" (hífen), não permitindo mais nenhum outro caractere, ou sim, o "#8", ou seja, o comando de apagar da direita para esquerda (Backspace).

Em qualquer componente que deseja atribuir o controle, basta que adicione ao evento OnKeyPress o seguinte trecho de códigos:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9','.','-',#8]) then
abort;
end;

Pronto, em qualquer componente que você irá adicionar o código ao evento mencionado, será controlada a digitação destes caracteres. Abraço, até o próximo post.

2 comentários:

Mateus André Chies disse...

Legal
Precisei disso hoje e nem perdi tempo par procurar pois aqui esta bem explicado.

William de Oliveira Ferreira disse...

eu achoo o uso do abort muito pesado, cruel. prefiro usar um:
key := #0;

faltou adicionar o ascii do delete e do tab...