Fórum Comportamento Estranho de MaskEdit Num Form KeyPreview=true #347117
08/10/2007
0
Por gentileza, faça o teste abaixo e me ajude, se puder:
1) Inicie uma aplicação;
2) Coloque um TMaskEdit com propriedade EditMask=000\-00\-0000;1;_
3) Mude a propriedade KeyPreview do form para true;
4) No OnKeyDown do [b:5d5a4ef94b]form[/b:5d5a4ef94b], coloque showmessage(inttostr(key));
Estranhamente o resultado vai ser 37, independentemente da tecla pressionada, ou seja, é o código da setaEsquerda.
Tirando a máscara ou colocando KeyPreview do form = false, não dá o bug. O showmessage mostra o código da tecla que realmente foi pressionada.
Outros componente como o TEdit, não se comportam assim.
Na minha aplicação eu tenho que deixar o KeyPreview do form = true, tenho que colocar máscara no MaskEdit e tenho que capturar a real tecla pressionada no [b:5d5a4ef94b]onKeyDown do form[/b:5d5a4ef94b].
Qualquer dica ajuda.
Obrigado.
1) Inicie uma aplicação;
2) Coloque um TMaskEdit com propriedade EditMask=000\-00\-0000;1;_
3) Mude a propriedade KeyPreview do form para true;
4) No OnKeyDown do [b:5d5a4ef94b]form[/b:5d5a4ef94b], coloque showmessage(inttostr(key));
Estranhamente o resultado vai ser 37, independentemente da tecla pressionada, ou seja, é o código da setaEsquerda.
Tirando a máscara ou colocando KeyPreview do form = false, não dá o bug. O showmessage mostra o código da tecla que realmente foi pressionada.
Outros componente como o TEdit, não se comportam assim.
Na minha aplicação eu tenho que deixar o KeyPreview do form = true, tenho que colocar máscara no MaskEdit e tenho que capturar a real tecla pressionada no [b:5d5a4ef94b]onKeyDown do form[/b:5d5a4ef94b].
Qualquer dica ajuda.
Obrigado.
Armindo
Curtir tópico
+ 0
Responder
Posts
09/10/2007
Paulo
Acho que tem a ver com a máscara. Porque num edit ou no maskedit sem máscara, não acontece nada. Acho que com Keypreview = True, ele chama o evento da máscara primeiro(código dela, ou coisa parecida) e depois o da tecla acionada, acho eu. Veja qual é o código 37.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)