Hmm..
Wenn es nicht zu genau sein soll, reicht auch eigentlich:
Delphi-Quellcode:
procedure TService1.ServiceExecute(Sender: TService);
var
tmpTime : TDateTime;
begin
tmpTime := now;
while not Terminated do begin
if SecondsBetween(tmpTime, now) >= 20 then begin
tmpTime := now;
// Mache deine Timeraktion...
end;
Sleep(1);
ServiceThread.ProcessRequests(false);
end;
end;
Damit hast Du einen ~20 Sekundentimer
Ganz ohne Messages..