otimer:end

Post Reply
User avatar
Manuel Valdenebro
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

otimer:end

Post by Manuel Valdenebro »

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?
Un saludo

Manuel
User avatar
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

Post by Antonio Linares »

Manuel,

Si solo usas ese timer, no habria problema en que no llames a End(). FWH y Harbour limpiaran todo :-)

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.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Manuel Valdenebro
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Re: otimer:end

Post by Manuel Valdenebro »

Muchas gracias Maestro.
Un saludo

Manuel
User avatar
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

Post by leandro »

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:

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) ]
hmpaquito
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: otimer:end

Post by hmpaquito »

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
User avatar
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

Post by leandro »

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) ]
Post Reply