PDA

Ver la Versión Completa : Duda al Hook de Roman :)


marceloalegre
09-09-2005, 14:52:53
Para los que no saben Roman es autor de un excelente hook de teclado que no usa dll... este es el link:

http://www.clubdelphi.com/users/roman/hooks.php

Tengo una duda: como puedo preguntar si la tecla ingresada es letra (tanto mayuscula y minuscula y numero?

calculo que con un if podria solucionar todo... pero no se como hacerlo :)

Me darian una mano amigos?

Gracias!

dec
09-09-2005, 15:40:18
Hola,

A ver si esto pudiera servir:


var
tecla: Char;
begin
tecla := 'A';
if (tecla in ['0'..'9']) then
ShowMessage('Es un número');
if (tecla in ['A'..'Z']) then
ShowMessage('Es una letra mayúscula');
if (tecla in ['a'..'z']) then
ShowMessage('Es una letra minúscula');
end;

marceloalegre
09-09-2005, 15:54:10
el tema es que hay que manejarse con los caracteres de la uses windows y no se como preguntar:
ejem( si Vk_Code en Vk_0 a vk_9 entonces mensaje('es igual al ascii de 0 a 9')

algo asi... jaja me cuesta explicarme!! espero se entienda!!

dec
09-09-2005, 16:12:51
Hola,

Prueba a ver utilizando la función "Chr" con la tecla que precises. Pero, tengo la sensación de que algo se me escapa, porque haciendo alguna que otra prueba en el evento "OnKeyDown" de un formulario no obtengo los mismos resulados que antes utilizando el evento "OnKeyPress".

Sabes que la diferencia entre estos eventos (para lo que nos ocupa) es que en el primero contamos con una parámetro "Key" de tipo "Word", y en el segundo contamos con un parámetro "Key" de tipo "Char".

Pues bien, el código que antes propuse parece ir bien en el evento "OnKeyPress" (con "Key" de tipo "Char") pero, no parece ir del todo bien en el evento "OnKeyDown" (con "Key" de tipo "Word")...

Actualización: He dicho que tengo problemas haciendo pruebas en el evento "OnKeyDown", pero no he dicho qué problemas. Pues bien, la cosa está en que usando el código de más arriba en el evento "OnKeyPress" se "reconocen" las mayúsculas, las minúsculas y los números: en el evento "OnKeyDown" los números bien, gracias, pero las letras siempre son mayúsculas... aun cuando no lo sean...

marceloalegre
09-09-2005, 17:30:27
siiii! las mayusculas y minusculas las toma igual al hacer alguna comparacion...que raro....¿? ya que en pantalla estoy viendo valores numericos distintos con un tcardialedit cortesia de delphi.com.ar.
mmm para lo que necesito con estoy me sirver... pero estaria bueno saber que esta pasando con esto....


Gracias por la ayuda mi amigo Dec!