Page 1 of 1

Problema con captura de teclas en FWH

Posted: Wed Mar 22, 2006 9:54 pm
by jmartial
Hola,

Tengo lo siguiente:

Un Diálogo, con un folder de 3 pestañas y un TWbrowse en la 2ª Pestaña.

Tomo el foco del Browse y desactivo las pestañas 1 y 3.

Defino el bKeydown de la 2ª pestaña y del Browse.

En 16b cuando pulsaba ESC lo capturaba el bkeydown del browse , en 32b lo captura el ¡Diálogo padre! , aunque parezca mentira.

Esto me rompe montón de código

¿cual es la forma de capturar las teclas en fwh ? ¿En qué modo han cambiado los eventos? ¿Que orden sigue de procesar las teclas en este tipo de pantallas?.


Un Saludo,
Joaquín

Posted: Wed Mar 22, 2006 10:29 pm
by jmartial
Antonio,

Más pistas, he comprobado que estando editando un get en un diálogo con folders , al pulsar la tecla ESC se ejecuta ¡2 veces! el valid del Diálogo.

Le he puesto un msginfo(), a un botón que llama a salir y al valid del diálogo, que son las 2 formas de salir, salta 2 veces el del diálogo.

Si clickeo el botón va bien, si pulso la tecla ESC salta 2 veces el valid del diálogo.

Me parece que algo raro ocurre con el valid de los diálogos.

Un Saludo,
Joaquín

Posted: Thu Mar 23, 2006 8:30 am
by Antonio Linares
Joaquín,

Por favor prueba samples\TestFold.prg y pulsa ESC. Aqui solo aparece el valid una vez.

Posted: Thu Mar 23, 2006 9:17 am
by jmartial
Antonio,

También falla.

Modifica este trozo de testfold.prg :

ACTIVATE DIALOG oDlg CENTERED ;
VALID MsgYesNo( "Want to end ?" )

return nil

Por este otro:

ACTIVATE DIALOG oDlg CENTERED ON INIT pru(oDlg) ;
VALID MsgYesNo( "Want to end ?" )

return nil

//----------------------------------------------------------------------------//


Function Pru(oDlg)
Local oGet , cPru := "Un get cualquiera"

oDlg:Move( 0,0, 600,600, .T.)
oDlg:Center()

@500,100 GET oGet VAR cPru PIXEL SIZE 200,24 OF oDlg

Return Nil


Ahora, pincha en el Get y estando el foco ahí pulsa ESC.


Un Saludo,
Gracias

Posted: Fri Mar 24, 2006 8:57 am
by Antonio Linares
Joaquín,

Funciona bien. Prueba con las librerías que te hemos enviado, gracias.