Ich benutze für so etwas "JvScheduledEvents" aus der
JVCL
Per Code ist das etwas Tricky (hatte bei mir einige Zeit gedauert, bis ich es rausgefunden hatte) und sieht bei mir z.B. so aus:
Delphi-Quellcode:
with JvScheduledEvents.Events.Add do begin
Name := 'EveryMondyAt8';
Schedule.RecurringType := srkWeekly;
Schedule.StartDate := DateTimeToTimeStamp(now());
Schedule.EndType := sekNone;
(Schedule as IJclWeeklySchedule).DaysOfWeek := [swdMonday];
(Schedule as IJclWeeklySchedule).Interval := 1;
(Schedule as IJclScheduleDayFrequency).StartTime := MilliSecondOfTheDay(StrToTime('08:00:00'));
(Schedule as IJclScheduleDayFrequency).EndTime := MilliSecondOfTheDay(StrToTime('08:00:00'));
(Schedule as IJclScheduleDayFrequency).Interval := 1;
OnExecute := ScheduleEvent;
end;
und hier das Event:
Delphi-Quellcode:
procedure ScheduleEvent(Sender: TJvEventCollectionItem; const IsSnoozeEvent: Boolean);
begin
if TJvEventCollectionItem(Sender).Name = 'EveryMondyAt8' then begin
MachIrgendWas();
end;
end;