Estimados,
He agregado a un form un TScreenKeyboard y un para de botones para "Aceptar" o "Cancelar" y he realizado con total éxito que las teclas Esc y Enter del TscreenKeyboar "simulen" el comportamiento de los botones aprovechando el evento OnKeyClick
Ahora bien, intento hacer los mismo con el teclado normal y no tuve problema con la tecla Enter, pero no así con Esc. No logro "atrapara" esa tecla.
He intentado utilizar :OnChar, pero no estoy seguro si es el evento correcto, dado que aparentemente no se llega a disparar y se me cierra el form.
En el foro encontré algunos post sobre temas parecidos a este pero no logro resolverlo aún.
Agradecería cualquier orientación de cómo resolver "atrapar" el Esc del teclado común.
Saludos
Daniel
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
TScreenKeyboard vs Teclado común
- ignacio
- Site Admin
- Mensajes: 9252
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: TScreenKeyboard vs Teclado común
Buenos días,
En el evento OnChar sólo entran los eventos de las teclas que tienen un reflejo en un carácter, que no es el caso de ESC. Debe de utilizar el evento OnKeyDown u OnKeyUp.
El form se le cierra porque le tiene indicado el estilo bsDialog. Si le quita dicho estilo no se cerrará.
Saludos
En el evento OnChar sólo entran los eventos de las teclas que tienen un reflejo en un carácter, que no es el caso de ESC. Debe de utilizar el evento OnKeyDown u OnKeyUp.
El form se le cierra porque le tiene indicado el estilo bsDialog. Si le quita dicho estilo no se cerrará.
Saludos
Re: TScreenKeyboard vs Teclado común
Ignacio,
buenas tardes.
Efectivamente el estilo del form era bsDialog. Lo primero que hice es cambiarlo a bsSingle y dejar el evento OnChar como estaba.
Mi sorpresa es que todo comenzó a funcionar como yo esperaba. Lo que hago en dicho evento es esto:
METHOD EditObservacionesChar( oSender, nKey, nFlags ) CLASS TControlMesas
if nKey == K_ESC
::BtnBmpCancelarClick()
Return 0
endif
RETURN Nil
No sé porqué motivo ahora al apretar ESC se dispara ese evento y se ejecuta perfectamente.
¿Puede ser que el hecho de cambiar el estilo del formulario afecte el evento onChar?
Muchas gracias por su ayuda.
Un saludo
Daniel
buenas tardes.
Efectivamente el estilo del form era bsDialog. Lo primero que hice es cambiarlo a bsSingle y dejar el evento OnChar como estaba.
Mi sorpresa es que todo comenzó a funcionar como yo esperaba. Lo que hago en dicho evento es esto:
METHOD EditObservacionesChar( oSender, nKey, nFlags ) CLASS TControlMesas
if nKey == K_ESC
::BtnBmpCancelarClick()
Return 0
endif
RETURN Nil
No sé porqué motivo ahora al apretar ESC se dispara ese evento y se ejecuta perfectamente.
¿Puede ser que el hecho de cambiar el estilo del formulario afecte el evento onChar?
Muchas gracias por su ayuda.
Un saludo
Daniel
- ignacio
- Site Admin
- Mensajes: 9252
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: TScreenKeyboard vs Teclado común
Buenos días,
Efectivamente así es. Con el estilo bsDialog la pulsación de la tecla ESC está reservada por el propio sistema para abandonar el formulario y por lo tanto no se llega ni a recibir el evento.
Un saludo
Efectivamente así es. Con el estilo bsDialog la pulsación de la tecla ESC está reservada por el propio sistema para abandonar el formulario y por lo tanto no se llega ni a recibir el evento.
Un saludo
Re: TScreenKeyboard vs Teclado común
Ignacio,
Muchas gracias por su aclaración.
Saludos
Daniel
Muchas gracias por su aclaración.
Saludos
Daniel