On kay label

¿En el visual fox existe alguna función parecida al on key label de fox 2.6? Es decir quiero que si el usuario apriete el botón QUE que haga alguna acción pej que aparezca una pantalla de ayuda para buscar el cliente... Etc
Respuesta
1
Espero poder ayudarte.
Si en visual fox existe esa función que la podes usar en un formulario o en un objeto. En realidad es un evento que se puede intersectar.
El evento se llama keypress
Cada objeto en un formulario tiene su evento keypress por eso es bueno saber cual es el ámbito en el cual quieres usarlo
Fíjate en el formulario, en los eventos, busca en keypress y va a abrir una pantalla de código con un parámetro inicial:
LPARAMETERS nKeyCode, nShiftAltCtrl
El primero te dice el código ascii de la tecla presionada. Podes fijarte en la ayuda de la función inkey() para ver los códigos
El segundo parámetro el usuario ademas de presionar una tecla, tenia la tecla shift, control o alt presionadas o más de una simultáneamente..
El valor para nShiftAltCtrl es:
1 = Shift
2 = Control
4 = Alt
Si hay más de una de estas teclas presionadas se suman los valores, por ejemplo si tiene control+alt el valor de nShiftAltCtrl es 6.
Vos podes evaluar esta tecla y hacer alguna función:
Para tu ejemplo sería algo asi en el evento keypress del formulario
LPARAMETERS nKeyCode, nShiftAltCtrl
if nKeyCode=107
   do miAyuda
   noDefault
endif
La utilización de noDefault en el código es para que no se escriba la QUE en el objeto donde estaba el usuario cuando presiono la tecla.
Ahora, para que el evento keypress del formulario tenga ámbito sobre todo el formulario incluyendo los objetos que tiene, la propiedad keyPreview del formulario debe estar en .t. (verdadero)
Espero te haya sido de utilidad y estamos en contacto
Keystone - Christian
¿Hola gracias por la respuesta igual no lo entiendo del todo me podrías mandar algún ejemplito para ver como se usa?
Código de ejemplo (esto va en el método keypress del formulario)
LPARAMETERS nKeyCode, nShiftAltCtrl
if nKeyCode=107
    Do miAyuda
    NoDefault
Endif
La propiedad keyPreview del formulario va en .t.
Listo ahora ejecutas el formulario cuando presiones la tecla QUE, se disparara el "do miAyuda" (lo tienes que cambiar por lo que vos quieras hacer)
Los códigos de nKeyCode (para cada tecla) los sacas de la ayuda de la función INKEY() que son los mismos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas