Page 1 of 1

KeyDow No funciona correctamente con la VK_ESCAPE

PostPosted: Fri Mar 10, 2006 11:30 am
by tsales
Antonio
Desde el último build la captura en un Dialogo de la tecla VK_ESCAPE utilizando el metodo Keydown, no funciona correctamente y antes funciona. Adjunto ejemplo:

FUNCTION MAIN()

LOCAL oDlg, oBrw

DEFINE DIALOG oDlg

oDlg:bKeyDown = { |nKey, nFlags| if(nkey==VK_ESCAPE, msginfo("Adios"),) }

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

ACTIVATE DIALOG oDlg;
CENTER

RETURN NIL

PostPosted: Fri Mar 10, 2006 5:48 pm
by karinha
//-> El correcto es asi...

#Include "FiveWin.Ch"

FUNCTION MAIN()

LOCAL oDlg

DEFINE DIALOG oDlg

@ 3, 10 BUTTON "&Salir" OF oDlg ;
SIZE 40, 12 ;
ACTION( oDlg:End(), __Quit() ) CANCEL

ACTIVATE DIALOG oDlg CENTERED ;
VALID( GetKeyState( VK_ESCAPE ) )

RETURN NIL

//-> Saludos.

PostPosted: Fri Mar 10, 2006 6:34 pm
by Antonio Linares
Toni,

Estamos revisándolo.

PostPosted: Fri Mar 10, 2006 11:15 pm
by Antonio Linares
Toni,

En el nuevo build de FWH, la pulsación de VK_ESCAPE está siguiendo el camino correcto que es generar una llamada al método Command() con valor de IDCANCEL (2) que llama a :End( IDCANCEL ).

En vez de usar bKeyDown ó bKeyChar, debes realizar la comprobación desde el VALID del diálogo.