Cambiar propiedad enabled de timer al perder el enfoque el form..

28 views
Skip to first unread message

Saúl Piña

unread,
Dec 6, 2016, 9:28:50 AM12/6/16
to Comunidad de Visual Foxpro en Español
Buenos dias,

Con cual metodo o propiedad del Form "Padre" podria cambiar la propiedad enabled de un timer justo cuando se invoca otro form "hijo" o de tipo "modal" ??

Por ejemplo: Cuando doy clic en un boton para ejecutar otro form "hijo", el form padre, no se cierra, simplemente lo dejo detrás, y una vez que se cierre el form "hijo" inmediatamente volver a cambiar la propiedad enabled del timer que se encuentra en el form "Padre".

Gracias


Fidel Charny

unread,
Dec 6, 2016, 9:50:02 AM12/6/16
to Comunidad de Visual Foxpro en Español
Saúl:
Si invoca un formulario Modal que llamas con DO FORM, el cambio lo puedes hacer antes y después del do form
thisform.timer1.Enabled = .f.
DO FORM Mymodal
Thisform.Timer1.Enabled = .t.

El problema es si el form no es modal, porque en ese caso, lo que tal vez convenga, es que el form convocado se ocupe de ese tema.

Antonio Meza

unread,
Dec 6, 2016, 9:51:14 AM12/6/16
to Comunidad de Visual Foxpro en Español
Prueba en el método Deactivate y Activate del form Padre

saludos
Antonio Meza

Saúl Piña

unread,
Dec 6, 2016, 9:54:17 AM12/6/16
to Comunidad de Visual Foxpro en Español
Fidel, ya lo intenté de esa forma y no funciona, talvez porque no es modal, aunque creo que algunos si son modal y no se ejecuta el codigo para detener el timer.

Antonio, deja reviso y les cuento como me fué..

gracias

Fidel Charny

unread,
Dec 6, 2016, 10:31:15 AM12/6/16
to Comunidad de Visual Foxpro en Español
El problema de utilizar Deactivate es que funcionará para cualquier otro form que tome el enfoque. Si es lo que necesitas, está bien.
Si solamente quieres desactivar el timer cuando se vé determinado formulario, puedes pasar la referencia de objeto al form hijo y desactivarlo en el Init de ese form, y reactivar el timer en el Destroy o en el Unload del hijo
* Llamada
DO FORM MyFormHijo with thisform.Timer1

* Init del Hijo
LPARAMETERS toTimer
ADdproperty(thisform,"Mytimer",toTimer)
ToTimer.Enabled = .f.

* Destroy del Hijo
IF VARTYPE(this.MyTimer)="O"
         Thisform.MyTimer.Enabled = .T.
ENDIF
Reply all
Reply to author
Forward
0 new messages