No he leido a fondo todos los mensaje, espero que esto sirva para algo.
El único problema que hay es que el Interval de un timer sólo puede aceptar un número en milisegundos, que equivale a 9 semanas (dia arriba, día abajo), por tanto:
Código Delphi
[-]
uses DateUtils;
FechaAviso:Tdatetime
begin
if fechaAviso > Now then
begin
if DaysBetween(fechaAviso, now) < 56 then Timer1.Interval := MillisecondsBetween(fechaAviso, now)
else
Timer1.interval := 55 * 24 * 60 * 60 * 1000
Timer1.Enabled:= true;
end;
Por cierto, usa siempre Tdatetimes poniendo fecha y hora, así puedes hacer los cálculos de fechas y horas correctamente.
Carliviris das muy poca información en el hilo, todavía ni siquiera sé que estas intentando hacer, deberías replantearte el hilo y decir exactamente cuales son los objetivos del programa y como debe funcionar. Si lo hubieses hecho desde un principio, seguro que tendrías respuestas más claras y concisas.
Saludos