Also, wenn du deine Zeitangabe des Events aus einer
DB entnimmst, gehe ich mal von aus, dass dieser Wert dort nen TimeStamp ist. Also ein Int64 Wert in Sekunden ab 1899 oder 1900 rum.
Wenn der Fall, dann erstell doch einfach in deinem Programm einen aktuellen Timestamp über die systemzeit. TimeToUnix oder so.
und dann einfach Zeit aus
DB mit aktuellem ermittelten TimeStamp subtrahieren und die differenz prüfen und dann kannste genau ein Intervall bestimmen.
Bsp:
TimeStamp aus
DB -->
Delphi-Quellcode:
DBTimeStamp := 1248542952;
SysTimeStamp := 1248539952;
Differenz := DBTimeStamp - SysTimeStamp;
case Differenz of
0..3600 : do something; //tue was --> noch eine Stunde Zeit bis zum Ereignis....
3601..xyz : do something else;
end;
Wenn deine Differenz kleiner Null ist, dann ist dein Ereignis schon abgelaufen und du brauchst dich nicht mehr drum kümmern.