Error en el evento keydown de un datawindow

Necesito que cuando el cursor este sobre un campo de un datawindow también se active el código que ya programe en el evento key de la ventana (este código hace una operación al presionar la tecla F1). Como no veía la forma de hacer esa acción cuando estaba en datawindows, decidí copiar el mismo código del evento key de la ventana al evento de usuario por basado en keydown del datawindow pero reemplazando algunas cosas (según los foros) : en el evento key de la ventan puse el siguiente código:
IF KeyDown(KeyF1!) THEN
//ACCION
end if
y en el evento de usuario basado en el pbm_keydown puse
IF key = KeyF1! THEN
//ACCION
end if
El problema esta en que a pesar de poner ese código sobre el objeto datawindow, al estar el programa en ejecución y cuando el enfoque esta sobre el datawindows por más que presione f1 .. La acción no se ejecuta.
Necesito una ayuda urgente

1 respuesta

Respuesta
1
Simplemente te hubicas en el evento OTHER y colocas esto
IF keydown(KeyF1!) THEN
<instruccion>
end if
Puse la acción sobre el evento other del datawindow, pero solo la ejecuta una vez luego como que se raya y después de 5 o 6 veces que sigo presionando el F1 recién ahí vuelve a ejecutarla. ¿Qué se puede hacer?
Pues simplemente es el EVENTO porque lo que programes dentro se esta ejecutando cada segundo cada milésima de segundo, casi nadie por no decir nadie nunca programa ahí, pero en casos extremos bueno se hace, te di esa solución porque es la unika ademas no entiendo porque pretendes acer eso, pero en fin esa la unika solución que puedo darte, los demás eventos de DW son al acea ENTER al enfocarte o al recuperar o actualizar todos derivan de esas cuestiiones, más no ay uno especifico como los SLE o la misma venta que tiene el KEYPRESS.
Bueno existe el evento id keypress para un objeto datawindows que lo tienes que asociar a un evento de usuario, según lo que leí esa sería la solución, pero la verdad es que no me da ningún resultado. Bueno de todas maneras gracias por tu apoyo.
Exacto pero ya con eso estarías usando "artificios" algo muy complejo para algo que no se tu pero me parece no muy lógico lo que necesitas acer, porque siempre que quieres usar una tecla o algo que no sea el enter, pues siempre va en la VENTANA, Eso es por LÓGICA
Si estoy de acuerdo contigo en ese punto. Pero el cliente no entiende eso, y me saca en cara que su antiguo sistema en fox por más que el cursor estaba en la grilla igual respondía a las teclas de función.
Pero porque necesariamente cuando estees dentro del DW, bueno asumamos que esta bien que sera dentro del DW, ¿pero por qué F1 y no entrar?
El programa se basa en que a través de 10 teclas de función (del F1 al F10) esta te inserta un respectivo item con su respectiva tarifa (solo manejan 5 items y 5 quedan libres, pero bueno ese no es el punto) así que cada vez que presiones cualquiera de la teclas de función esta inserta 1 registro (de acuerdo a la tecla de función que presionaste) al datawindows de tipo grid. Hasta ahí no hay problema, eso lo programe en el evento key de la ventana y sin problemas, el problema ocurre cuando ellos deben llenar un campo del datawindows y ponen el enfoque en el y como son solo usuarios olvidan sacar el enfoque y quieren insertar un nuevo item cuando aun el cursor esta en el campo que llenan en el datawindows.
Son usuarios complicados por lo que el jefe pide que se haga tal cual era el sistema anterior
A entiendo, bueno la unicaaaaaa solución que puedo ayarle es que no lo hagas con DW trabájalo con SLE, bueno es la única forma creo yo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas