Ayuda con manejos de teclas

Post Reply
User avatar
carlos vargas
Posts: 1721
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Ayuda con manejos de teclas

Post by carlos vargas »

Estimados, solicito su ayuda de ser posible:
Escenario:
Una ventana fullscreen, la cual tiene 6 controles Say (los cuales no obtiene focos, no tengo problemas con ellos),
luego un Panel el cual contiene un video (este panel en determinado momento se maximiza al tamaño de la pantalla, desactivando todos los otros controles, ahi pasara a manejar las teclas con MyKeyHandler,
en estado normal no es necesario, ya que no tiene foco),
y luego dos xbrowse ( con estos tengo problemas ya que obtiene el foco ).
esto es por que las tecla seran configuradas, sabemos que las teclas de movimientos up, down, left y right son manejadas por los propios browse, en mi caso no deso que los browse procesen esas teclas.

El asunto es que deseo manejar en un solo procedure el manejo de las teclas, que los browse no obtengan foco nunca, pero respondan a por ejemplo este codigo
por ejemplo el segundo browse no deberar tomar foco ni manejar ninguna tecla, solo sirve para mostrar una lista.
El primer browse no debera tomar foco y solo debera poder bajar o subir o selecionar, nada mas.
El panel que muestra el video no debera manejar ninguna tecla cuando este en tamaño normal, pero cuando este en fullscreen debera responder a cualquier tecla, en ese momento retorna a su tamaño normal y se evalua MyKeyHandler

Code: Select all | Expand


DEFINE WINDOW oWnd...
   @1,1 XBROWSE oBrw1 ...
   @2,2 XBROWSE oBrw2 ...

 oWnd:bKeyDown := {|nKey| MyKeyHandler(nKey) }

procedure MyKeyHandler( nKey )
 do case
 case nKey == VK_RETURN //esta tecla es configurable
  PlayVideo()
 case nKey == VK_LEFT //esta tecla es configurable
  ShowInfo()
 case nKey == VK_RIGHT //esta tecla es configurable
  ShowInfo()
 case nKey == VK_UP //esta tecla es configurable
  oBrw1:Up()
 case nKey == VK_DOWN //esta tecla es configurable
  oBrw1:Down()
 case nKey == ???  //agregara creditos

 endcase
return nil
 
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
cmsoft
Posts: 1297
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina
Been thanked: 2 times

Re: Ayuda con manejos de teclas

Post by cmsoft »

Hola Carlos:
El segundo browse podria ser con
@2,2 XBROWSE oBrw2 ... WHEN(.F.)
Si no necesita ser tocado.
User avatar
carlos vargas
Posts: 1721
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: Ayuda con manejos de teclas

Post by carlos vargas »

Hola, como ha indicado cmsoft ha funcionado poniendo

Code: Select all | Expand


::oMediaList:bWhen := {|| FALSE }
::oPlayList:bWhen := {|| FALSE }
 

aca oMediaList y oPlayList son los browse.
ahora todas las teclas son atrapadas por mi manejado de teclas
y ahi lanzo las procesos. Ahora me falta controlar el panel, que cuando no es pequño no procese las teclas pero cuando esta maximizado sip.

Gracias.
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
Post Reply