![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
![]() Alguien sabría decirme el porque de que no pueda capturar las teclas
F1 ... F12 en el evento OnKeyPress de un formulario. Tengo activada la propiedad KeyPreview y he probado varias cosas: IF Key = #112 then //Si se presione F1 .... IF Key = VK_F1 then .... pero ninguna me funcionó. Sin embargo, las teclas Enter (#13), Escape (#27), las capturo sin ningún tipo de problemas. El código es el siguiente: Código:
Case Key of #13: begin Key := #0; //Focus al siguiente objeto Perform(WM_NEXTDLGCTL, 0, 0); end; #27: begin Key := #0; //Cierra el formulario Close; end; #112: begin Key := #0; //Cambia de página PageControl.TabIndex := 1; end; Un saludo.
__________________
https://www.youtube.com/DexterBass |
#2
|
||||
|
||||
Hola,
La solución pasa por utilizar los eventos "OnKeyUp" u "OnKeyDown". La explicación en la ayuda del evento "OnKeyPress": Cita:
|
#3
|
||||
|
||||
![]() OK. A ver si entendí.
La idea sería que use OnKeyUp o OnKeyDown para las teclas F1 ... F12 y lo demás que lo deje en el OnKeyPress. Digo esto porque intenté pasar todo al OnKeyUp y no me resultó. Por ejemplo al pulsar Enter (cuando ejecuto Perform(WM_NEXTDLGCTL, 0, 0)) se escucha un pequeño beep. Antes lo solucionaba con un Key := #0 (Que ahora pasó a ser un Key := 0), pero ahora no hay caso. Te pido que me confirmes si estoy en lo cierto. Desde ya te agradezco tu explicación. Un saludo.
__________________
https://www.youtube.com/DexterBass |
![]() |
|
|
![]() |
|