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.

KeyDown y F10

Foro público de Xailer en español
Responder
carloskds
Mensajes: 18
Registrado: Mié Abr 05, 2023 2:53 am

KeyDown y F10

Mensaje por carloskds »

no he sido capaz de interceptar las pulsaciones de teclas F2...F12
he usado el evento OnKeyDown, OnKeyUp, OnChar, del form o del control browse, pero no me los detecta, si me detecta teclas alfanuméricas sin problemas...
gracias
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9253
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: KeyDown y F10

Mensaje por ignacio »

Hola,

Funcionado sin problemas en TForm:OnKeyDown

Saludos
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
carloskds
Mensajes: 18
Registrado: Mié Abr 05, 2023 2:53 am

Re: KeyDown y F10

Mensaje por carloskds »

Ignacio, en este código me funciona del f4 a f9 bien, f10 no reacciona, F11 y 12 tambien funcionan bien.

Código: Seleccionar todo

METHOD FormKeyDown( oSender, nKey, nFlags ) CLASS TFormClientC
   DO CASE
   CASE nKey==VK_F4
      MsgInfo("Presiono F4")
   CASE nKey==VK_F5
      MsgInfo("Presiono F5")
   CASE nKey==VK_F6
      MsgInfo("Presiono F6")
   CASE nKey==VK_F7
      MsgInfo("Presiono F7")
   CASE nKey==VK_F8
      MsgInfo("Presiono F8")
   CASE nKey==VK_F9
      MsgInfo("Presiono F9")
   CASE nKey==VK_F10
      MsgInfo("Presiono F10")
   CASE nKey==VK_F11
      MsgInfo("Presiono F11")
   CASE nKey==VK_F12
      MsgInfo("Presiono F12")
   ENDCASE
RETURN Nil
he hecho un pequeño modulo en harbour puro, para descartar problemas del teclado, y ahi F10 me retorna -9, obiamente bajo consola, se que en windows tendria otro codigo...

Código: Seleccionar todo

   #include "Inkey.ch"

   PROCEDURE Main
      LOCAL nEvent
      CLS
      ? "Waiting for events (press ESC to quit)"
      SET EVENTMASK TO INKEY_ALL

      DO WHILE Lastkey() <> K_ESC
         nEvent := Inkey(0)
         @ 0, 0 CLEAR TO 1, MaxCol()

         @ 0,1 SAY "Key Code:"
         ?? nEvent
      ENDDO

   RETURN
carloskds
Mensajes: 18
Registrado: Mié Abr 05, 2023 2:53 am

Re: KeyDown y F10

Mensaje por carloskds »

veo que en otras lib gui, tampoco me funciona el F10. asi que no es xailer. disculpa la molestia ignacio.
de momento no es importante.
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5706
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Re: KeyDown y F10

Mensaje por jfgimenez »

Carlos,

la tecla F10 la tiene "reservada" windows para abrir el menú de la ventana, y por eso no se recibe por WM_KEYDOWN. Si necesitas capturar su pulsación tendrás que interceptar el mensaje WM_SYSCOMMAND. Algo así:

Código: Seleccionar todo

METHOD WMSysCommand( wParam, lParam ) CLASS TForm1
   IF wParam == SC_KEYMENU
      MsgInfo( "Se ha pulsado F10" )
      RETURN 0
   ENDIF
RETURN ::Super:WMSysCommand( wParam, lParam )
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
carloskds
Mensajes: 18
Registrado: Mié Abr 05, 2023 2:53 am

Re: KeyDown y F10

Mensaje por carloskds »

Gracias José.
Muy claro. :-)
Responder