Capturar tecla en xbrowse?

Post Reply
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Capturar tecla en xbrowse?

Post 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.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Capturar tecla en xbrowse?

Post 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 ) , ) }
 
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Capturar tecla en xbrowse?

Post 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.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Capturar tecla en xbrowse?

Post by cnavarro »

Posiblemente ese método no existe en la clase que estás utilizando.
Saludos
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Capturar tecla en xbrowse?

Post by FranciscoA »

Maestro.
Es correcto, En mi version de xbrowse no aparece.
Many thanks
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
Post Reply