Sí, básicamente es eso.
Podrías utilizar un registro (o un objeto) por cada elemento que quieres dar de alta en tu aplicación, por ejemplo:
Código Delphi
[-]
Type TElemento = record
intervalo:Extended ; inicio, Fin :TDateTime ; enMarcha:Boolean; end;
elementos = array [0..79] of TElemento
Pero al hablar de "timers" y precisión me he ido por los cerros de úbeda.
Es más fácil poner un solo timer de 1 minuto. Cuando quieras dar de alta un elemento:
- asignas enMarcha a true para ese elemento.
- inicio := now; // una llamada a la fecha y hora actual del sistema
- Fin := inicio + intervalo; (intervalo expresados en días, por eso es un real, 1 segundo vendría a ser : 1 / (24 * 60 * 60))
En el evento OnTimer, captas la hora actual del sistema y la comparas con todo el array, así compruebas si tienes que actualizarlo o no.
Código Delphi
[-]actual := now;
for i:= 0 to 79 do
if elementos[i].enMarcha then
if elementos[i].Fin < actual then
Saludos.