Delphi - Egy adott dátum és idő figyelése programból

forráskód letöltése
Ebben a cikkben egy olyan komponenst készítettünk, amely egy adott dátum és időpont bekövetkezésekor generál egy eseményt. Nagyszerűen használható pl. olyan programokban, ahol egy adott időpontban végre kell hajtani egy feladatot (pl. határidőnaplónál figyelmeztetés). A mellékelt példaprogram megnyitása előtt az AsAlarm.pas-ban lévő komponenst telepítenie kell a Delphi alá.

Komponensünknek van egy Date, egy Time, és egy Enabled property-je. A Date property a dátum, a Time property pedig az időpont megadására szolgál. Az Enabled property-vel engedélyezhetjük, illetve tilthatjuk le a "riasztást". Ha az Enabled property értéke true, akkor a megadott napon és időpontban létrejön az OnAlarm esemény.

A komponenst a TComponent osztályból származtatjuk. A komponens konstruktorában létrehozunk egy TTimer-t, amely másodpercenként ellenőrzi az időpontot. A Timer OnTimer eseményéhez hozzárendeljük a DoTimer metódust.
constructor TAsAlarm.Create;
begin
    inherited Create(aOwner);
    FTimer:=TTimer.Create(self);
    FTimer.Interval:=1000;
    FTimer.Enabled:=False;
    FTimer.OnTimer:=DoTimer;
    FDate:=Date;
    FTime:=Time;
end;
A DoTimer metódusban ellenőrizzük, hogy eljött-e a megadott időpont, és ha igen, akkor generálunk egy OnAlarm eseményt.
procedure TAsAlarm.DoTimer;
begin
    if (Date=FDate) and (Time>=FTime) and
        Assigned(FonAlarm) then
    begin
        Enabled:=false;
        FOnAlarm(Self);
    end;
end;