Page 1 of 1

Ayuda con bkeydown vk_home, vk_up no me funciona

Posted: Sat Aug 26, 2006 4:53 pm
by Databaselab2002
Estimado Colegas

Tengo un problema que las teclas vk_home,vk_up,vk_down
no me funcionan en el browse no asi vk_return, vk_insert
vk_f2 , si alguien me puede orientar

Desde ya muchas gracias
Fabian
databaselab2002@yahoo.com.ar


adjunto codigo


include "FiveWin.ch" // Cabezera de FW



// Cabezera de FW



FUNCTION MAIN()

LOCAL oDlg, oBrw

DEFINE DIALOG oDlg

@ 1, 1 LISTBOX oBrw FIELDS SIZE 100, 30

* oBrw:bKeyDown:= {|nK| if( nK==VK_UP, ( MsgInfo(), oDlg:End() ), ) }
OBrw:bKeyDown := {|nk| MiFuncion(nk)}


@ 3, 1 BUTTON "&Close";
ACTION oDlg:End()

ACTIVATE DIALOG oDlg;
CENTER

RETURN NIL


*ero tal vez se vea mejor así:

*oTXbrowse:bKeyDown := {|nk| MiFuncion(nk)}

function MiFuncion(nk)
do case
case nk = VK_RETURN
*funcion1()
? "enter"

case nk = VK_F2
? "F2"

case nk = VK_INSERT
? "INSERT"

case nk = VK_HOME
? "HOME"

Posted: Sun Aug 27, 2006 11:38 am
by Antonio Linares
Para poder usar esas teclas tienes que modificar la Clase TWBrowse de FW:

Code: Select all

METHOD KeyDown( nKey, nFlags ) CLASS TWBrowse

   if ::bKeyDown != nil       // Nuevo
      Eval( ::bKeyDown, nKey, nFlags )  // Nuevo
      return nil   // Nuevo
   endif  // Nuevo

   do case
      case nKey == VK_UP
           ::GoUp()

      case nKey == VK_DOWN
      ...

Posted: Sat Sep 30, 2006 10:40 am
by Manuel Aranda
Hola Antonio, he modificado la clase tal como señalas y ahora no funciona el wbrowse, no es posible pasar de un registro a otro con las teclas de cursos o con AvPag, RegPag , Inicio o Fin. La verdad es que me cuesta comprender como algo que funcionaba perfectamente en un ListBox no esté implementado de "serie" en TXBrowse para una cuestión que a mi me parece bastante importante y haya que meterse a modificar la clase con lo que esto conlleva para algunos de nosotros.

Saludos,
Manuel Aranda

Posted: Sat Sep 30, 2006 10:44 am
by Antonio Linares
Manuel,

Hay que quitar "return nil" de esa modificación.

Vamos a revisar lo que comentas del browse, gracias.

Posted: Sat Sep 30, 2006 11:00 am
by Manuel Aranda
Ya me he dado cuenta y lo he hecho, pero ahora el comportamiento es anómalo. Se ejecuta la función asociada pero se corresponde con el registro anterior, no en el que se sitúa el puntero. Además al pulsar INTRO para modificar el registro me ejecuta la acción dos veces seguidas.
Ya te digo, bastante extraño todo.
De momento estoy bloqueado con este tema y me estoy cuestionando el volver al LISTBOX. Esperaré a ver si encuentras una solución.

Saludos y gracias,
Manuel