Asociar teclas a un xBrowse

Asociar teclas a un xBrowse

Postby Mike Serra » Wed Sep 26, 2007 4:15 pm

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

Code: Select all  Expand view  RUN
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: 297
Joined: Fri Apr 14, 2006 5:52 pm
Location: Córdoba (España)

Postby Mike Serra » Wed Sep 26, 2007 4:17 pm

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
Mike Serra
 
Posts: 297
Joined: Fri Apr 14, 2006 5:52 pm
Location: Córdoba (España)

Postby karinha » Wed Sep 26, 2007 5:31 pm

CUAL ÉS LA VERSION DE TU FIVEWIN?

PROBASTES CON bKeyDown()??
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7856
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Postby Mike Serra » Wed Sep 26, 2007 5:45 pm

Gracias Karina

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

Postby Mike Serra » Wed Sep 26, 2007 5:46 pm

la llamada a press_on_browse la realizo asi:

Code: Select all  Expand view  RUN
::oBrowse:bKeydown:={|nkey|press_on_browse(nKey,self)}
       
Mike Serra
 
Posts: 297
Joined: Fri Apr 14, 2006 5:52 pm
Location: Córdoba (España)

Postby jacgsoft » Thu Sep 27, 2007 4:03 pm

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
User avatar
jacgsoft
 
Posts: 105
Joined: Fri Nov 24, 2006 9:03 pm
Location: Lima - Peru

Postby Mike Serra » Fri Sep 28, 2007 11:25 am

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.
Mike Serra
 
Posts: 297
Joined: Fri Apr 14, 2006 5:52 pm
Location: Córdoba (España)

Postby jacgsoft » Fri Sep 28, 2007 4:06 pm

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
jacgsoft
 
Posts: 105
Joined: Fri Nov 24, 2006 9:03 pm
Location: Lima - Peru

Postby Biel EA6DD » Fri Sep 28, 2007 4:28 pm

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  Expand view  RUN
if nKey == VK_ESCAPE
      :oWnd:KeyDown( nKey, nFlags )
      return 0

mientras que si es otra tecla
Code: Select all  Expand view  RUN
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/
User avatar
Biel EA6DD
 
Posts: 682
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca

Postby Mike Serra » Sat Sep 29, 2007 5:30 am

Muchas Gracias a los 2 (Jaime y Gabriel). Esperaré noticias.
Mike Serra
 
Posts: 297
Joined: Fri Apr 14, 2006 5:52 pm
Location: Córdoba (España)


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 48 guests