Asociar teclas a un xBrowse

Post Reply
Mike Serra
Posts: 287
Joined: Fri Apr 14, 2006 5:52 pm
Location: Córdoba (España)

Asociar teclas a un xBrowse

Post by Mike Serra »

Buenas Foro!, tengo este codigo asociado a un xbrowse:

Code: Select all

function press_on_browse(nKey,self)
    msginfo(nkey)
    do case 
        case nkey = VK_F2 .and. ::lInsertButton
            ::Insert() 
        case nkey = VK_F3  .and. ::lDeleteButton
            ::Delete() 
        case (nkey = VK_F4 .or. nKey = VK_RETURN) .and.  ::lModifyButton
            ::Modify() 
        case nkey = VK_F5 .and. ::lSearchButton
            ::Search() 
        case nkey = VK_F6 .and. ::lPrintButton
            ::Print()
        case nkey = VK_ESCAPE 
            ::oContainer:End()
    end case
return
Me funciona todo perfectamente menos la tecla ESCAPE, ¿sabeis que puede ser?

Muchas Gracias.
Mike Serra
Posts: 287
Joined: Fri Apr 14, 2006 5:52 pm
Location: Córdoba (España)

Post by Mike Serra »

Se me ha olvidado comentaros que no es problema de VK_ESPAPE, ya que cuando pulso sobre la tecla ESCAPE, no se muestra nada en el msginfo.

SALUDOS
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Post by karinha »

CUAL ÉS LA VERSION DE TU FIVEWIN?

PROBASTES CON bKeyDown()??
João Santos - São Paulo - Brasil
Mike Serra
Posts: 287
Joined: Fri Apr 14, 2006 5:52 pm
Location: Córdoba (España)

Post by Mike Serra »

Gracias Karina

es la FW 2.8 Octubre de 2006
Mike Serra
Posts: 287
Joined: Fri Apr 14, 2006 5:52 pm
Location: Córdoba (España)

Post by Mike Serra »

la llamada a press_on_browse la realizo asi:

Code: Select all

 ::oBrowse:bKeydown:={|nkey|press_on_browse(nKey,self)}
       
User avatar
jacgsoft
Posts: 96
Joined: Fri Nov 24, 2006 9:03 pm
Location: Lima - Peru

Post by jacgsoft »

Cuando presionas ESC se sale del Browse o se queda alli?


Si se sale del Browse entonces tienes que modificar el metodo KEYDOWN
de la clase XBROWSE
Mike Serra
Posts: 287
Joined: Fri Apr 14, 2006 5:52 pm
Location: Córdoba (España)

Post by Mike Serra »

Lo curioso es que no hace nada, es decir, si os fijais en la función del principio del post hay un msginfo(nkey), si pulso cualquier tecla me sale caracter ascii de la tecla pulsada, del F1, F2, F3, A, B, C, la que sea, pero si pulso ESCAPE no muestra nada.
User avatar
jacgsoft
Posts: 96
Joined: Fri Nov 24, 2006 9:03 pm
Location: Lima - Peru

Post by jacgsoft »

fijate en el metodo KEYDOWN de la clase XBROWSE y entenderas porque. En mi caso tuve que modificarlo para poder captar todas las teclas sin excepcion.

Jaime
User avatar
Biel EA6DD
Posts: 680
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca
Contact:

Post by Biel EA6DD »

Revisando un poco el código, yo el metodo KeyDown de xBrowse lo veo bien. Claro está que si le añades CASE nKey==27 ..., conseguiras variar el comportamiento.

Pero en realidad el hecho de no evaluar bKeyDown, es debido a el metodo KeyDown de la clase control.
Allí si la tecla recibida es escape

Code: Select all

if nKey == VK_ESCAPE
      :oWnd:KeyDown( nKey, nFlags )
      return 0
mientras que si es otra tecla

Code: Select all

return Super:KeyDown( nKey, nFlags )
Supongo que habra algún motivo, que no alcanzo a ver, pero si quitas el if nKey== VK_ESCAPE, veras como si te evalua correctamente el codigo de bKeyDown.
::oWnd y Super no son el mismo objeto, y el code block bKeyDown esta asignado en Super.

Algun usuario mas experimentado, o Antonio directamente nos podra dar luz sobre el tema.
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
Mike Serra
Posts: 287
Joined: Fri Apr 14, 2006 5:52 pm
Location: Córdoba (España)

Post by Mike Serra »

Muchas Gracias a los 2 (Jaime y Gabriel). Esperaré noticias.
Post Reply