Hola amigos,
Tengo en una aplicación un TIMER que se activa al iniciarse la pantalla principal. Cuando se pulsa alguna opción inhabilita el timer temporalmente con oTimer:Deactivate() y al volver de dicha función vuelve a activar el timer con oTimer:activate().
Mi duda es la siguiente. Al finalizar el programa ¿ es necesario usar oTimer:End() o todos los objetos mueren al finalizar la aplicación?
otimer:end
- Manuel Valdenebro
- Posts: 706
- Joined: Thu Oct 06, 2005 9:57 pm
- Location: Málaga-España
- Antonio Linares
- Site Admin
- Posts: 42513
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 73 times
- Contact:
Re: otimer:end
Manuel,
Si solo usas ese timer, no habria problema en que no llames a End(). FWH y Harbour limpiaran todo![Smile :-)](./images/smilies/icon_smile.gif)
Pero si es una aplicación en donde usas varios timers, etc. entonces si debes llamar a End() puesto que elimina ese timer de un array interno que mantiene la clase TTimer. Al no liberarlo, ese objeto no se destruye y se queda retenido en el array, consumiendo memoria.
Si solo usas ese timer, no habria problema en que no llames a End(). FWH y Harbour limpiaran todo
![Smile :-)](./images/smilies/icon_smile.gif)
Pero si es una aplicación en donde usas varios timers, etc. entonces si debes llamar a End() puesto que elimina ese timer de un array interno que mantiene la clase TTimer. Al no liberarlo, ese objeto no se destruye y se queda retenido en el array, consumiendo memoria.
- Manuel Valdenebro
- Posts: 706
- Joined: Thu Oct 06, 2005 9:57 pm
- Location: Málaga-España
- leandro
- Posts: 1744
- Joined: Wed Oct 26, 2005 2:49 pm
- Location: Colombia
- Has thanked: 34 times
- Been thanked: 10 times
- Contact:
Re: otimer:end
Buenas noches a todo el foro.. Hace rato no entraba a consultarlo.
Pero me surgio una pregunta con respecto a la FINALIZACION de un TIMER.
lo tengo definido de la siguiente manera:
FINALIZO el timer de la siguiente manera en el VALID del dialogo
Pero me sale el siguiente error:
Alguien sabe la razón del error, de antemano gracias
Pero me surgio una pregunta con respecto a la FINALIZACION de un TIMER.
lo tengo definido de la siguiente manera:
Code: Select all | Expand
****************************************
*DEFINE UN TIMER PARA EVITAR INACTIVIDAD
****************************************
FUNCTION pTimCA01(oTimer)
if oTimer == nil
DEFINE TIMER oTimer INTERVAL 15000 OF oCuadro ACTION pActCA01()
ACTIVATE TIMER oTimer
else
Alert( "There is already a working timer..." )
endif
Return oTimer
FINALIZO el timer de la siguiente manera en el VALID del dialogo
Code: Select all | Expand
VALID(oTimer:end(),.t.)
Pero me sale el siguiente error:
Code: Select all | Expand
Descripción de la Applicación:
___________________________________________________
Ubicación y Nombre: C:\DlymAdo.1\Contable.Exe (32 BITS)
Desde la Estación de Trabajo: LEANDRO
Usuario en Sesión: 001
Privilegio del Usuario: 001
Tamaño: 1,341,952 bytes
Hora de Inicio: Martes 2 de Julio del 2013, 6:38:43 PM
Hora del Error: Martes 2 de Julio del 2013, 6:38:43 PM
Tiempo de Sesión: 0 hours 0 mins 41 secs
Descripción del Error:
___________________________________________________
Error BASE/1004
Class: 'NIL' has no exported method: END
Args:
[ 1] = U
Llamadas al Stack:
___________________________________________________
Alguien sabe la razón del error, de antemano gracias
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com
[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 24.09 ] [ xHarbour 64 bits) ]
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com
[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 24.09 ] [ xHarbour 64 bits) ]
Re: otimer:end
Leandro,
Sin ver la llamada a la funcion ptimca01()... parece que estás asumiendo que en ptimcam01(oTimer) el oTimer se creara en la funcion llamada y se asignara por REFERENCIA. Y esto no es asi.
Deberia ser oTimer:= ptimca01()
Saludos
Sin ver la llamada a la funcion ptimca01()... parece que estás asumiendo que en ptimcam01(oTimer) el oTimer se creara en la funcion llamada y se asignara por REFERENCIA. Y esto no es asi.
Deberia ser oTimer:= ptimca01()
Saludos
- leandro
- Posts: 1744
- Joined: Wed Oct 26, 2005 2:49 pm
- Location: Colombia
- Has thanked: 34 times
- Been thanked: 10 times
- Contact:
Re: otimer:end
paquito muchas gracias.... era la solución al problema.
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com
[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 24.09 ] [ xHarbour 64 bits) ]
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com
[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 24.09 ] [ xHarbour 64 bits) ]