Ver Mensaje Individual
  #5  
Antiguo 17-01-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 31
Lepe Va por buen camino
Como bien dices, el Timer lo necesitas, pero en lugar de ponerle un interval de 100 milisegundos, le pones el total que necesites, por ejemplo:

Código Delphi [-]
var FechaAviso:Tdatetime; // tendrá la fecha y hora de la nota o tarea
     miliseg:Word;
begin
milisegundos := MillisecondsBetween(fechaAviso, Now);
if miliseg > 1000 then
begin
 Timer1.Interval := miliseg;
 Timer1.Enabled := true;
end;
Como miliseg es de tipo Word, creo que permitía almacenar algo así como 9 semanas, es decir, puedes establecer 1 sola vez el timer para que te avise dentro de 9 semanas.

La función compareTime no la necesitas, una fecha y hora se guarda como un número en coma flotante, donde la parte entera corresponde a los dias que han pasado sobre la fecha base del calendario,(creo recordar que la fecha base de los calendarios es 01/01/1900, de hecho si asignas a una fecha el valor cero, te dará 31/12/1899, un día menos ). La parte fraccionaria de ese número es la hora.

Si quieres saber si una fecha es más grande que otra...:
Código Delphi [-]
  if fechaAviso > Now() then

Sumar dias, horas o minutos a fechas:
Código Delphi [-]
  const UnDia = 1; 
           UnaHora = 1 / 24; // sumamos la parte fraccionaria de un dia (24 horas)
          UnMinuto = 1 /( 24 *60);
         UnSegundo = UnMinuto / 60;
begin
   FechaAviso := now() + undia; // la misma hora que hoy, pero con fecha de mañana

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita