El KeyPress no me captura el F10

323 views
Skip to first unread message

ZeRoberto

unread,
Sep 22, 2013, 5:32:00 PM9/22/13
to publicesvfoxpro
Hola a todos
 
Tengo un formulario con teclas de funcion para ingresar datos todos las teclas funcionan menos el F1 y el F10 le puse ON KEY LABEL F10 Do Nada pero sigue igual tambien le puse SET FUNCTION 10 TO Do Nada y lo mismo.
 
Como se puede hacer

Imágenes integradas 1

btnMyVideo.Click()
FoxShit.png

Fernando D. Bozzo

unread,
Sep 22, 2013, 5:47:08 PM9/22/13
to publice...@googlegroups.com
Hola Roberto, algunas ideas:

1) Asignate una tecla para suspender definida al inicio del sistema, por ejemplo: ON KEY LABEL F7 SUSPEND

2) Cuando estés en esa pantalla pulsá F7 y en la ventana de comandos poné esto:

ACTIVATE SCREEN
DISPLAY STATUS

y fijate si tu asignación de tecla está, ya que lista todos los ON KEY

3) Desde la misma ventana de comandos probá algo más simple, como: ON KEY LABEL F10 MESSAGEB)X("F10 pulsada!")

4) Resumí la ejecución (RESUME) y pulsá F10 a ver si muestra el messagebox. Si lo muestra entonces el problema puede estar en el programa llamado.


Saludos.-

ZeRoberto

unread,
Sep 22, 2013, 6:03:29 PM9/22/13
to publicesvfoxpro
Gracias Fernando por contestar pero aquí encontré una solución genial

ON KEY LABEL F10 KEYBOARD CHR(255)



Saludos

ZeRoberto

unread,
Sep 22, 2013, 6:21:18 PM9/22/13
to publicesvfoxpro
Bueno la solución es buena pero si estas sobre un texto te imprime un carácter malo ÿ

Fernando D. Bozzo

unread,
Sep 23, 2013, 3:12:33 AM9/23/13
to publice...@googlegroups.com
Me lo imaginaba, ¿y probaste lo que te puse? A mí me funciona sin problemas, lo probé en la ventana de comandos.

Analyzer

unread,
Sep 23, 2013, 10:55:57 AM9/23/13
to publice...@googlegroups.com
Acerca del caracter raro ÿ, encontré en el grupo esta sugerencia del maestro Luis María:

Pon este código en tu PRG principal y prueba

*--- Deshabilita macros de teclado
SET FUNC 1 TO
SET FUNC 2 TO
SET FUNC 3 TO
SET FUNC 4 TO
SET FUNC 5 TO
SET FUNC 6 TO
SET FUNC 7 TO
SET FUNC 8 TO
SET FUNC 9 TO
SET FUNC 10 TO
SET FUNC 11 TO
SET FUNC 12 TO
POP KEY ALL
ON KEY

Saludos!

ZeRoberto

unread,
Sep 23, 2013, 11:14:46 AM9/23/13
to publicesvfoxpro
No funciona eso, pero ya lo solucione el truco es poner nodefault en el evento keypress para que no salga ese caracter.

Fer

unread,
Sep 23, 2013, 11:19:03 AM9/23/13
to publice...@googlegroups.com

... Pequeño dato que omitiste al pedir ayuda al principio. Activar la configuración del keypress del form lo cambia todo, sin eso te hubiera funcionado.

Analyzer

unread,
Sep 23, 2013, 11:29:29 AM9/23/13
to Comunidad de Visual Foxpro en Español
Pues intenté solucionarlo sin usar el on key label, usando solo el parámetro nKeyCode o la funcion lastkey() y no funcionó. El enfoque se pasa al menu antes de lanzar cualquier mensaje dentro del keypress de un text.

No encontré información relevante en español, por lo que busqué en Inglés. 

Esta es una solución que si funciona:

En el keypress del text

IF LASTKEY()=-9
NODEFAULT
MESSAGEBOX("PRESIONÓ F10")
ENDIF

El truco es que el form sea modal y desactivar el menú del sistema con:

SET SYSMENU OFF

Con el eso se ve el mensaje PRESIONÓ F10 perfectamente.

ZeRoberto

unread,
Sep 23, 2013, 11:44:11 AM9/23/13
to publicesvfoxpro
Hola Fernando y como seria eso de la configuración del keypress.

Saludos

Analyzer

unread,
Sep 23, 2013, 11:54:34 AM9/23/13
to Comunidad de Visual Foxpro en Español
Por fin algo en español.. 

Revisa en este enlace el comentario del usuario "Integral" (Gabriel, Lima Perú).

http://microsoft.public.es.vfoxpro.narkive.com/rJkC8hG3/tecla-f10-no-ejecuta-keypress

Con relacion a tu pregunta, te sugiero que pruebes lo siguiente :

Aqui el codigo simple que vengo usando desde VFp 6.0

# define K_F10 -9 && F10

ON KEY LABEL F10 _Screen.ActiveForm.KeyPress(K_F10, 0)

Probandolo :

IF Lastkey() = -9
WAIT WINDOW "Presiono la Tecla [F10]..." TIMEOUT 1
ENDIF

Tambien puedes hacer llamar a un determinado formulario.


Saludos!

Fernando D. Bozzo

unread,
Sep 23, 2013, 2:38:19 PM9/23/13
to publice...@googlegroups.com
Hola Roberto:

Hay varias configuraciones de detección de teclas en los forms, una es global del form por medio de KEYPREVIEW = .T. y el resto son los eventos KEYPRESS de los controles.

Lo que no sé es porque no te funcionó, porque yo hice un form, reasigné la tecla F10 para que muestre el MESSAGEBOX que te puse antes y anduvo perfecto, incluso sin poner NODEFAULT en el keypress (solo el LPARAMETERS) y también sin nada de código en el KEYPRESS.

Debés tener varias asignaciones por ahí que puedan entrar en conflicto. No sé si llegaste a probar lo que te había comentado al inicio.


Saludos.-

Fernando D. Bozzo

unread,
Sep 23, 2013, 2:40:04 PM9/23/13
to publice...@googlegroups.com
Igualmente F10 debería quedar reservada para el menú, y no reasignarse, ya que es de sistema.

J. Enrique Ramos Menchaca

unread,
Sep 23, 2013, 2:55:14 PM9/23/13
to publice...@googlegroups.com
Tantos años programando en VFP y Windows y hasta ahora me vengo a enterar que F10 es reservada para el menú. Lo bueno que es lunes, así que lo tomare como que va a ser una semana de aprendizaje.

ZeRoberto

unread,
Sep 23, 2013, 3:10:44 PM9/23/13
to publicesvfoxpro
Tengo el KeyPreview = .T.

Y en el KeyPress

If nKeyCode = -9
  Messagebox("Entro")
EndIf

Pero cuando presiono F10 se me activa el menu como si fuera la tecla ALT y no ejecuta el messagebox

Saludos

MALKASOFT ADPI: http://www.developervfp.blogspot.com/

unread,
Sep 23, 2013, 6:52:01 PM9/23/13
to publice...@googlegroups.com
Hola lo que estas haciendo esta bien, solo que tienes que ejecutarlo ya en tiempo de ejecución o sea desde tu programa principal porque sino te va activar lo que es el menu de VFP y reviza el comando INKEY en la ayuda de VFP ahi estan todas las teclas.


Pd.: Descargate mi grilla que tiene multiples funciones como filtrar, multiseleccion, búsqueda, etc del siguiente link http://www.developervfp.blogspot.com/p/gridlibre-v35.html. Ahora también puedes bajarte mi ultima herramienta Busqueda Incremental con un TEXTBOX http://developervfp.blogspot.mx/p/busqueda-incremental-con-un-textbox.html  las herramientas viene con código fuente, ojo no hacer mal uso por favor. 


Saludos; 


Ing. Russvell Jesus Soto Gamarra 
San Juan del Rio - Queretaro - Mexico 
Nextel.: 52*133750*16
rycjesusrj @ hotmail.com
Framework Multi-conexion version 6.0 (nueva)
Reply all
Reply to author
Forward
0 new messages