Page 1 of 1

SharedModule y Timer

Posted: Fri Apr 19, 2019 4:54 am
by ddupre
Estimados,
Estoy haciendo pruebas con un TTimer que he puesto en un SharedModule con la idea de que a cada segundo se actualice el cText de varios Tlabel que tengo en varios formularios.
La idea es mostrar un "reloj" en diferentes lugares según el caso.


He intentado hacerlo de varias formas sin éxito, obteniendo errores de compilación o errores en tiempo de ejecución.

Lo más "cerca" que estuve fue poniendo este código en el evento OnTimer, el cual compila pero da error en ejecución, avisando que no existe la variable de instancia ctext.

METHOD Timer1Timer( oSender ) CLASS TShaMo1

TFormInicial():oHora:cText := Time()

RETURN Nil

Agradezco desde ya cualquier ayuda.

Saludos
Daniel

Re: SharedModule y Timer

Posted: Sun Apr 21, 2019 3:58 pm
by ignacio
Buenos días,

Le recomiendo que sencillamente cree un timer en cada formulario y ponga el intervalo del mismo en 10.000. Es decir, evaluación: una vez por segundo. Le aseguro que no merece la pena tener un timer único para todo y le explico el porqué:

  • Los timers siempre dependen de un formulario o ventana y aunque se pueden crear sobre ventanas invisibles, ello no hace más que complicar aún más todo, por lo tanto, cuando de destruye la ventana, también se destruye su timer asociado. Podría poner el timer únicamente en la ventana principal de su aplicación y desde el método que recoge el evento de ONTIMER comprobar si están activos los formularios hijos y en dicho caso actualizar también los objetos TLabel que muestran la hora.
  • El consumo de recursos que tiene un timer que se dispara cada segundo es realmente inapreciable.
  • Por simplicidad de código

Un saludo

Re: SharedModule y Timer

Posted: Sun Apr 21, 2019 4:45 pm
by ddupre
Buen día Ignacio,
Muchas gracias por la aclaración.

Un Saludo
Daniel