Page 1 of 1

Ejecutar función despues de ACTIVE DIALOG (SOLUCIONADO)

Posted: Fri Aug 27, 2010 3:12 pm
by leondefrancia
Estimados, tengo el siguiente inconveniente por ser novato en el tema, estoy realizando un active dialog sobre un objeto formulario , el cual en el método on init le asigno un objeto browse para mostrar dentro del mismo, este último tiene asociado teclas de atajo que llaman a otros formularios.
Si en el active dialog le paso la tecla que necesito (F6) antes de terminar de visualizar el formulario principal el browse ya me muestra el formulario que llamaba esta tecla, es decir veo un formulario fuera de contexto ya que recien al salir termino de visualizar el formulario principal.

Mi pregunta es como pasarle el keydown del F6 una vez que el objeto que estoy inicializando se terminó de cargar y se está mostrando en pantalla.
Ejemplo del código que estoy modificando:
ACTIVE DIALOG oForm CENTER ON INIT ( InitMulti(oForm), BarraEstado(), ObjBrowse:Refresh(), oForm:Refresh(), ObjBrowse:PostMsg(WM_KEYDOWN, VK_F6,0) )
Desde ya muchas gracias.

Re: Ejecutar función despues de ACTIVE DIALOG

Posted: Fri Aug 27, 2010 3:20 pm
by acuellar
León

Tenes que ponerlo dentro del dialogo

Code: Select all | Expand


ObjBrowse:bKeyDown:={ |nKey| iif( nKey=VK_F6,oDlg:End(), ) }
 


Saludos,

Adhemar

Re: Ejecutar función despues de ACTIVE DIALOG

Posted: Fri Aug 27, 2010 3:39 pm
by leondefrancia
Adhemar gracias por responder tan rápido, te explico lo que me sucede, el browse ya tiene asociado determinadas teclas de función, al iniciar el tdialog levanto un formulario y dentro de este el browse. El F6 llama a un formulario para el ingreso de artículos, lo que necesito es que al instanciar la ventana ese formulario de ingreso ya aparezca para el usuario, probé con el código que me pusiste de ejemplo pero no sé como adaptarlo, porque dentro de el debería colocar a la función que llama el F6 pero sigo sin ejecutar el F6, me explico?

Jorge.

Re: Ejecutar función despues de ACTIVE DIALOG

Posted: Fri Aug 27, 2010 3:59 pm
by acuellar
Jorge

Quizas asi:

Code: Select all | Expand


 oDlg:bStart = { || Funcion(),lEnd := .t., oDlg:End() }
 


Saludos,


Adhemar

Re: Ejecutar función despues de ACTIVE DIALOG

Posted: Fri Aug 27, 2010 5:10 pm
by leondefrancia
Adhemar sos un genio!!!
La solución que me pasaste la modifiqué así "oForm:bStart = { || ObjBrowse:PostMsg(WM_KEYDOWN, VK_F6,0) }" y salió excelente!
Muchisimas, muchisimas, gracias, estuve un montón renegando con este tema, leia una ayuda de fivewin que me dieron (fwclass.hlp) pero no figura ninguno de los dos métodos que mencionaste.

Saludos!

Re: Ejecutar función despues de ACTIVE DIALOG

Posted: Fri Aug 27, 2010 7:33 pm
by acuellar
Bien Jorge
:lol:

Saludos,

Adhemar