TFolder camiando páginas por teclado mediante ShortCut
Publicado: Mié Sep 19, 2007 7:54 pm
Al cambiar de FolderPage mediante el mouse el control lo recibe correctamente el primer control de la página activa pero si el
cambio se realiza por el teclado "Alt+Key" mediante ShortCut sigue en el control de la anterior página, aún forzándolo en OnShow
de la página que activamos. Espero que alguien más pueda confirmar esto.
He conseguido solventarlo remarcando virtualmente el ::SetFocus() del METHOD Click( cKey ) CLASS XTabCtrl de la librería pero no
sé si esta es la solución.
CLASS TTabCtrl FROM XTabCtrl
METHOD Click( cKey )
ENDCLASS
METHOD Click( cKey ) CLASS TTabCtrl
LOCAL n, nAt, lChange
IF ! Empty( cKey )
cKey := Upper( cKey )
FOR n := 1 TO Len( ::aItems )
IF ( nAt := At( "&", ::aItems[ n ]:cText ) ) > 0 .AND. Upper( Substr( ::aItems[ n ]:cText, nAt + 1, 1 ) ) == cKey
IF n != ::nIndex
IF ( lChange := ::Changing( n, ::nIndex ) ) == Nil .OR. lChange
::SetIndex( n, .T. )
// tabCtrl.prg(426)
// ::SetFocus()
LogDebug('Ok ???')
ENDIF
ENDIF
EXIT
ENDIF
NEXT
ENDIF
RETURN Nil
Un saludo
Xavi
cambio se realiza por el teclado "Alt+Key" mediante ShortCut sigue en el control de la anterior página, aún forzándolo en OnShow
de la página que activamos. Espero que alguien más pueda confirmar esto.
He conseguido solventarlo remarcando virtualmente el ::SetFocus() del METHOD Click( cKey ) CLASS XTabCtrl de la librería pero no
sé si esta es la solución.
CLASS TTabCtrl FROM XTabCtrl
METHOD Click( cKey )
ENDCLASS
METHOD Click( cKey ) CLASS TTabCtrl
LOCAL n, nAt, lChange
IF ! Empty( cKey )
cKey := Upper( cKey )
FOR n := 1 TO Len( ::aItems )
IF ( nAt := At( "&", ::aItems[ n ]:cText ) ) > 0 .AND. Upper( Substr( ::aItems[ n ]:cText, nAt + 1, 1 ) ) == cKey
IF n != ::nIndex
IF ( lChange := ::Changing( n, ::nIndex ) ) == Nil .OR. lChange
::SetIndex( n, .T. )
// tabCtrl.prg(426)
// ::SetFocus()
LogDebug('Ok ???')
ENDIF
ENDIF
EXIT
ENDIF
NEXT
ENDIF
RETURN Nil
Un saludo
Xavi