GARANTIR DESCONTO

Fórum Problema com OnKeyUp #267663

07/02/2005

0

Olá pessoal.
Tenho um problema com o evento onkeyup do dbgrid. Para verificar se a tecla digitada em uma celula do dbgrid é numero ou letra eu usava o evento onkeypress, que funcionava perfeitamente.
if Key in [´A´..´Z´, ´a´..´z´] then
...
o unico problema é que ele é disparado antes de o dbgrid informar ao dataset se a operação é insersão ou edição. Pra resolver isso eu usei o evento onkeyup, que se encaixou como uma luva. o problema é que o jeito do onkeyup tratar a tecla pressionada é diferente do jeito do onkeypress. O onkeypress trata o caracter da tecla como um char, facilitando a comparação. Já o onkeyup trata a tecla pressionada como um codigo ascii, dificultando a comparação.
A função chr retorna o caracter equivalente ao codigo ascii da tecla, sendo assim eu fiz o seguinte teste:
if Chr(Key) in [´A´..´Z´, ´a´..´z´] then
...
que funciona, mas tem varios bugs. Ex.: As tecla de função (F1, F2, ...) são interpretadas como letras, assim como os numero do teclado numerico.
Alguem sabe um modo mais eficiente de se fazer esta comparação?
Agradeço antecipadamente.


Flaviosan

Flaviosan

Responder

Post mais votado

07/02/2005

Outra coisa a variavel caracter tem que ser global.
Bye.


Flaviosan

Flaviosan
Responder

Gostei + 1

Mais Posts

07/02/2005

Flaviosan

Desculpe o flood, mas estou precisando muito de uma resposta.
Uma dica: usar os os caodigos ascii pras teclas de letras não funciona
if Key in [65..90, 97..122] then
...



Responder

Gostei + 0

07/02/2005

Marcelo Saviski

não é a melhor foma, mas

crie uma [color=blue:c7ae6f29e8]variavel [/color:c7ae6f29e8]do tipo Char

Caracter: Char;


no [color=blue:c7ae6f29e8]OnKeyPress[/color:c7ae6f29e8], faça

Caracter := Key;


no on [color=blue:c7ae6f29e8]KeyUp[/color:c7ae6f29e8]

if Caracter in [´a´..´z´, ´A´..´Z´] then
 (...)



Responder

Gostei + 1

07/02/2005

Flaviosan

Obrigado Marcelo, matou a pau!
Essa ideia me passou pela cabeça, mas como vc disse, não é a melhor solução e nem tentei implementa-la.
Valeu!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar