PDA

Ver la Versión Completa : Captar teclado con delphi 7 y delphi 2010


ElDuc
18-07-2012, 19:18:04
Hola señores,

Tengo un problema muy raro, estoy intentando controlar el teclado y programando con delphi 7 el evento keypress me funciona perfectamente, pero trabajando con delphi 2010 hay teclas (como las flechas) que no disparan el evento.

Alguien sabe si tengo que activar o desactivar alguna cosa en delphi 2010 para que al pulsar dichas teclas se dispare el evento y pueda "cazar la pulsación"

El Keypreviw del formulario está activado en ambos casos.

Gracias por vuestra ayuda.

ecfisa
21-07-2012, 02:53:23
Hola ElDuc.

En Delphi 7 los virtual key codes no son captados en el evento OnKeyPress sino en OnKeyDown. Lo mismo sucede en Delphi 2010.

Para comprobar esto, podes realizar una prueba con un form en blanco:

...
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
ShowMessage('KeyPress');
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
case Key of
VK_LEFT : ShowMessage('Key Left');
VK_RIGHT: ShowMessage('Key Right');
VK_UP : ShowMessage('Key Up');
VK_DOWN : ShowMessage('Key Down');
VK_F1 : ShowMessage('Key F1');
//...
end;
end;

Los diferentes códigos virtuales de teclas los encontras en la ayuda de delphi buscando por "Virtual key codes".

Saludos.

ElDuc
09-08-2012, 21:11:15
Muchas gracias ecfisa, lo he probado y es Ok.