Page 1 of 1
Capturar tecla en xbrowse?
Posted: Wed Oct 21, 2020 4:36 pm
by FranciscoA
Amigos.
No logro capturar cuando se presionan las teclas VK_UP y VK_DOWN en xBrowse.
Esto no funciona:
Code: Select all
oBrw:bKeyDown := { | nKey | if( nKey = VK_DOWN .or. nKey = VK_UP, MsgInfo(nKey), ) }
He visto infinidad de ejemplos en el foro, pero lo mismo... no funcionan.
Alguno puede postear un ejemplo funcional, o unicamente el codigo pertinente?
Gracias de antemano.
Re: Capturar tecla en xbrowse?
Posted: Wed Oct 21, 2020 7:24 pm
by cnavarro
Francisco, modifica el metodo asi
Code: Select all
METHOD KeyDown( nKey, nFlags ) CLASS TXBrowse
local oCol
local uRet
if Valtype( ::bKeyDown ) = "B"
uRet := EVal( ::bKeyDown, nKey, nFlags, Self ) //, ::SelectedCol()
if ValType( uRet ) == 'N' .and. uRet == 0
return 0
endif
endif
if ! ::lScreenUpdating
return ::Super:KeyDown( nKey, nFlags )
endif
::CloseMessage()
do case
case nKey == VK_ESCAPE
.../...
y cuando lo uses, podrás hacerlo así:
Code: Select all
// Ejecuta el MsgInfo y después ejecutaría la accion por defecto de la tecla VK_DOWN o VK_UP
oBrw:bKeyDown := { | nKey | if( nKey = VK_DOWN .or. nKey = VK_UP, ( MsgInfo(nKey), 1 ) , ) }
o asi ( como ves, dependiendo de lo que devuelvas: 0 ó 1 )
Code: Select all
// Ejecuta el MsgInfo y termina ( vuelve )
oBrw:bKeyDown := { | nKey | if( nKey = VK_DOWN .or. nKey = VK_UP, ( MsgInfo(nKey), 0 ) , ) }
Re: Capturar tecla en xbrowse?
Posted: Wed Oct 21, 2020 9:38 pm
by FranciscoA
Cristobal.
Trabajé en una copia de txBrowse.prg, y funciona bien, aunque tuve que omitirle la parte ::CloseMessage() porque daba error.
Muchas gracias.
Re: Capturar tecla en xbrowse?
Posted: Thu Oct 22, 2020 1:38 am
by cnavarro
Posiblemente ese método no existe en la clase que estás utilizando.
Saludos
Re: Capturar tecla en xbrowse?
Posted: Thu Oct 22, 2020 11:10 pm
by FranciscoA
Maestro.
Es correcto, En mi version de xbrowse no aparece.
Many thanks