Quiero ejecutar acciones con teclas de función

Handel Vieth
16 de Diciembre del 2004
En un formulario que es mi entorno de trabajo para la aplicación que estoy diseñando, quiero que oprimiendo teclas de función o con juegos de teclas, las oprima y se active el formulario que corresponda, alguien me podría decir ¿qué puedo hacer? Ya que no me funciona ON KEY LABEL, INKEY()

sgomez
16 de Diciembre del 2004
Si no son muchos los formularios que querés llamar podés utilizar las teclas de funcion. Para ello poné al comienzo de tu programa

set function 2 to "do form formulario1;"
set function 3 to "do form formulario2;"

De esta manera cuando pulses F2 se ejecuta formulario1 y con F3 se ejecuta formulario2

Viedka
16 de Diciembre del 2004
Amigo, para que puedas ejecutar la tarea que deseas, necesitas escribir el siguiente código en el procedimiento ACTIVATE de tu formulario

ban = .T.
DO WHILE ban = .T.
SET CURSOR OFF
tecla = INKEY(0)
* Para F2
IF tecla = -1
acción...
tecla = INKEY(0)
ENDIF
IF tecla = -2
accion...
ENDIF
* Para opción y salir del bucle
IF tecla = 27
ban = .F.
SET CURSOR ON
THISFORM.RELEASE()
ENDIF
ENDDO

Espero que te sirva a ti y a todos los que tengan la misma inquietud.

Saludos a todos

Viedka

TodoTrucos
16 de Diciembre del 2004
Pues yo optaría por usar el evento KeyPress del formulario. Este evento intercepta todas las pulsaciones de teclas, pasando como parámetro la tecla pulsada, así como si has pulsado Mayúsculas, Control o Alt.
Para que funcione debes tener la propiedad KeyPreview del formulario en .T.

Un saludo
TodoTrucos