Problema con captura de teclas en FWH

Post Reply
jmartial
Posts: 457
Joined: Tue Mar 14, 2006 7:26 pm

Problema con captura de teclas en FWH

Post 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
jmartial
Posts: 457
Joined: Tue Mar 14, 2006 7:26 pm

Post 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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Joaquín,

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

Antonio Linares
www.fivetechsoft.com
jmartial
Posts: 457
Joined: Tue Mar 14, 2006 7:26 pm

Post 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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Joaquín,

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

Antonio Linares
www.fivetechsoft.com
Post Reply