SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: kennety en Miércoles 2 de Julio de 2003, 20:54

Título: Re: Dichosos Timers....Ayuda!
Publicado por: kennety en Miércoles 2 de Julio de 2003, 20:54
Hola, tengo una aplicación en donde utilizo bastantes timers, he creado un procedimiento para desactivar todos los timers de un form concreto de la siguiente forma:

Public Sub TimersPrensa()    frmPrensa.tmrLectura.Enabled = False
frmPrensa.tmrAlarmaAfilar.Enabled=False
frmPrensa.tmrAlarmaObjetivo.Enabled = False  
frmPrensa.tmrRegistrandoDatos.Enabled = False
frmPrensa.tmrAjuste.Enabled = False
frmPrensa.tmrAjuste2.Enabled = False
frmPrensa.tmrPiezas.Enabled = False
frmPrensa.tmrTiempo.Enabled = False
End Sub

Este procedimiento lo tengo en un modulo para poderlo llamar desde qualquier form. El problema es que cuando se ejecuta este SUB (habiendo descargado el frmPrensa) al cabo de cierto tiempo se muestra en pantalla el frmPrensa.
No sé si queda muy claro el problema pero me está fastidiando muchísimo, decidme lo que algo aunque sea que no hay solucion.

Gracias.
Título: Re: Dichosos Timers....Ayuda!
Publicado por: HurryCrack en Miércoles 2 de Julio de 2003, 21:09
Hola amigo, creo ke si cierras la ventana directamente estas deshabilitando todo lo ke se encuentra en ella incluidos los timer, pero de todas formas, intenta deshabilitarlos antes de cerrar FrmPrensa De forma ke cuando se produzca el evento de cierre del form llamas a tu modulo ke los deshabilita (TimersPrensa). Fale? un saludo
:hippi:
Título: Re: Dichosos Timers....Ayuda!
Publicado por: J.M.Movilla en Miércoles 2 de Julio de 2003, 22:00
A mí me parece que el problema no está en la subrutina TimersPrensa, sino en cómo haces el unload de frmPrensa.  Si pones como última instrucción un "Set frmPrensa = Nothing" creo que solucionarás tu problema.
Saludos y suerte
Título: Re: Dichosos Timers....Ayuda!
Publicado por: kennety en Viernes 4 de Julio de 2003, 17:53
Gracias por vuestras respuestas.

HurryCrack, eso era lo que hacia descargaba el form pero los timers si estan en ejecucion no se detienen y pueden volver a cargar el form si hacen referencia a el (eso es lo que he podido observar).
De momento solucioné el problema a medias, porque lo hice ocultando el form en lugar de descargarlo así no me daba sorpresas, pero no gusta como solucion.

J.M. me podrias explicar algo más acerca de lo que propones (he aprendido VB por mi cuenta y en mi corta experiencia no he utilizado nunca esa instrucción, a ver si aprendo más!). ¿Que iria en lugar de la instrucion Unload frmPrensa, o a continuación? ¿Eso asegura que nada del form en question vuelva a cargarlo?

Muchas gracias por ayudarme a avanzar.
Título: Dichosos Timers....Ayuda!
Publicado por: J.M.Movilla en Domingo 6 de Julio de 2003, 19:52
Cuando cargas objetos, éstos pasan a memoria, y cuando los cierras simplemente haces eso, cerrarlos, pero NO LIBERAS MEMORIA. Es conveniente DESPUÉS de cerrar un objeto poner la instrucción Set Obj = Nothing, con lo cual lo quitas también de la memoria.