Tratando mensagem MaskEdit

Aug 18
2010

Aconteceu de eu precisar tratar uma mensagem no TMaskEdit e minha memória idosa não se lembrar de como fazê-lo. Para que isso não ocorra mais e caso alguém tenha a mesma dúvida, deixo aqui registrada a solução.

Hoje, o componente em questão, estava com a máscara ‘!00:00:00;1;_’ o que obriga o que as posições marcadas pelo 0 sejam preenchidas. Por mais bobo que seja, basta trocar o 0 por 9 e fazer o tratamento no evento que mais lhe convier, no meu caso no OnExit do mesmo, como se segue:

procedure TFrmCadFichaOper.edTempoExit(Sender: TObject);
var
tTemp: TDateTime;
begin
try
tTemp := StrToTime(edTempo.Text);
except
MsgAtencao('Formato de tempo inválido, preencha corretamente.');

if (edTempo.CanFocus) then
edTempo.SetFocus;
end;
end; 

No final a máscara ficou assim: ‘!99:99:99;1;_’.

Para quem riu da minha velha memória, isso eu vi em 1997 na revista Clube Delphi e vou transcrever o artigo todo aqui:

A propriedade EditMask é uma variável do tipo string que define a máscara que limita os dados que podem ser digitados num componente do tipo EditMask ou em um campo de um registro de um Banco de Dados. A máscara limita os caracteres considerados válidos a serem digitados pelo usuário.

Uma máscara consiste de três campos separados por ponto-e-vírgula. O primeiro campo é a máscara propriamente dita, o segundo campo consiste num caracter que define se os caracteres ou máscara devem ser salvos como parte dos dados. O terceiro define o caracter usado para representar os espaços em branco na máscara.

  • ! – Se um ! aparecer na máscara, caracteres em branco não são armazenados como dados.
  • > – Se um > aparecer na máscara, todos os caracteres seguintes estarão em letras maiúsculas, até que seja encontrado um caractere igual a <.
  • < – Se um < aparecer na máscara, todos os caracteres seguintes estarão em letras maiúsculas, até que seja encontrado um caractere igual a >.
  • <> – Este sinal significa que as letras maiúsculas e minúsculas serão armazenadas como digitadas pelo usuário.
  • \ – Os caracteres que seguem este sinal serão tratados como literais.
  • L – Apenas caracteres alfabéticos (a-z e A-Z) sejam aceitos nessa posição.
  • l – Apenas caracteres alfabéticos (a-z e A-Z) sejam aceitos nessa posição, mas aceita que sejam omitidos.
  • A – Apenas caracteres alfanuméricos (0-9, a-z e A-Z) sejam aceitos nessa posição.
  • a – Apenas caracteres alfanuméricos (0-9, a-z e A-Z) sejam aceitos nessa posição, mas aceita que sejam omitidos.
  • C – Este caractere faz com que quaisquer caracteres sejam aceitos nesta posição.
  • c – Este caractere faz com que quaisquer caracteres sejam aceitos nesta posição, mas aceita que sejam omitidos.
  • 0 – Apenas caracteres numéricos (0-9) sejam aceitos nessa posição.
  • 9 – Apenas caracteres numéricos (0-9) sejam aceitos nessa posição, mas aceita que sejam omitidos.
  • # – Apenas caracteres numéricos (0-9) e sinais de mais (+) ou menos(-) sejam aceitos nessa posição, mas aceita que sejam omitidos.
  • : – Este caractere (dois pontos) é usado para separar horas, minutos e segundos em dados horários. Se outro caractere separador de horas, minutos e segundos é definido nos atributos internacionais do Painel de Controle do sistema, este caractere será usado ao invés dos dois pontos.
  • / – É usado para separar meses, dias e anos em dados de datas. Se outro caractere separador de meses, dias e anos é definido nos atributos internacionais do Painel de Controle do sistema, este caractere será usado ao invés do caractere /.
  • ; – O ponto-e-vírgula é usado para separar máscaras.
  • _ – O caractere _ insere espaços em branco na caixa de edição.

Embora essa dica pareça muito boba, ajuda muito lembrar dessas coisas no momento de apuro.

2 Responses to “Tratando mensagem MaskEdit”

  1. Tomas Tippens says:

    Gracias por la punta!

    Voy a añadir su blog a mi lista!

  2. Abdul Nasso says:

    Conhecer seu blog é compensador, e a equipe que se dedica na produção do Site Sucesso lhe parabeniza pelo seu estilo diferente!

Leave a Reply

Arquivo

Categorias