Página 1 de 1

TScreenKeyboard vs Teclado común

Publicado: Jue May 23, 2019 9:32 pm
por ddupre
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

Re: TScreenKeyboard vs Teclado común

Publicado: Vie May 24, 2019 10:21 am
por ignacio
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

Re: TScreenKeyboard vs Teclado común

Publicado: Vie May 24, 2019 2:54 pm
por ddupre
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

Re: TScreenKeyboard vs Teclado común

Publicado: Lun May 27, 2019 9:44 am
por ignacio
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

Re: TScreenKeyboard vs Teclado común

Publicado: Lun May 27, 2019 8:45 pm
por ddupre
Ignacio,
Muchas gracias por su aclaración.

Saludos
Daniel