Tratando mensagem MaskEdit
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.
September 22nd, 2010 at 07:54
Gracias por la punta!
Voy a añadir su blog a mi lista!
August 26th, 2011 at 09:34
Conhecer seu blog é compensador, e a equipe que se dedica na produção do Site Sucesso lhe parabeniza pelo seu estilo diferente!