Ayuda con Hotkeys

Ayuda con Hotkeys

Postby MarioG » Tue Nov 01, 2005 12:58 am

Buenas...

Desde un Dialog hago lo siguiente

...

ACTIVATE DIALOG oDlg ;
ON INIT ( oSelf:BarraFac() , ;
oSelf:ActivaKeys() )

El metodo ::BarraFac() carga una barra de botones definidos con TSButtons; luego ::Activakeys() es un metodo que asigna procesos a teclas de funcion, segun una condición, de la siguiente manera:

if ::lNueva
::aFunKeys[_F2] := SetKey( VK_F2, {|| ::aoBar[_BNewF]:KeyDown( VK_RETURN ) }) ; ::aoBar[_BNewF]:Show()
SetKey( VK_F3, ::aFunKeys[_F3] ) ; ::aoBar[_BFactu]:Hide()
::aFunKeys[_F6] := SetKey( VK_F6, {|| ::aoBar[_BLista]:KeyDown( VK_RETURN ) }) ; ::aoBar[_BLista]:Show()
else
SetKey( VK_F2, ::aFunKeys[_F2] ) ; ::aoBar[_BNewF]:Hide()
::aFunKeys[_F3] := SetKey( VK_F3, {|| ::aoBar[_BFactu]:KeyDown( VK_RETURN ) }) ; ::aoBar[_BFactu]:Show()
SetKey( VK_F6, ::aFunKeys[_F6] ) ; ::aoBar[_BLista]:Hide()
end

::aoBar, como se observa, es un array de los objetos botones y según se cumpla la condición algunos se muestran y otros se ocultan, para que en el caso falso ocurra lo contrario.

hasta aquí todo se ejecuta correctamente salvo que... cuando lanzo la app si pulso cualquiera de las teclas de funcion redefinidas, y visibles, no responde a la puslación, pero; si hago clic sobre cualquiera de los botones visibles, a posteriori puedo pulsar sobre cualquiera de las teclas de función para que respondan; o sea, evidentemente se están asignando luego de que se produzca el promer evento desde un boton de la barra de botones a través del clic de mouse.
Espero me entiendan. Si es así pregunto: que debo hacer para que al desplegarse el Dialog de la app el usuario pueda usar las teclas redefinidas de primera instancia?
Aclaro: Necesariamente ::ActivaKeys() debe estar despues de ::BarraFac porque es allí donde se asignan los objetos botones.

muchas gracias
Mario
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Postby Antonio Linares » Wed Nov 02, 2005 12:30 pm

Mario,

Prueba a darle el foco a uno de los botones desde la claúsula ON INIT del diálogo:

ACTIVATE DIALOG oDlg ;
ON INIT ..., oBoton1:SetFocus()
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42073
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby MarioG » Thu Nov 03, 2005 12:30 pm

gracias Antonio, fue la solución

saludos
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 55 guests