Now()
gibt eine TDateTime
zurück, die das aktuelle Datum/Uhrzeit der Uhr darstellt. Sie fügen dann die vom Benutzer eingegebene Zeit relativ zum aktuellen Datum/Uhrzeit hinzu. Wenn der Benutzer beispielsweise 00:05:00
eingibt, werden dem aktuellen Datum/Uhrzeit 5 Minuten hinzugefügt.
Wenn Sie wollen, dass die Benachrichtigung bei einer spezifischen Zeit des aktuellen Datums zu feuern, verwenden Sie die Date()
Funktion anstelle der Now()
Funktion, so dass Sie die eingegebene Zeit relativ zu Mitternacht hinzufügen (00:00:00am
):
MyNot.FireDate := Date + TimeEdit1.Time;
Alternativ können Sie die Funktion SysUtils.ReplaceTime()
statt:
var
dt: TDateTime;
dt := Date;
ReplaceTime(dt, TimeEdit1.Time);
MyNot.FireDate := dt;
Dies hat den zusätzlichen Vorteil, dass Sie c ein dann konfigurieren, was Datum, das Sie wollen, wie aus der SysUtils.EncodeDate()
Funktion:
var
wYear, wMonth, wDay: Word;
dt: TDateTime;
wYear := ...;
wMonth := ...;
wDay := ...;
dt := EncodeDate(wYear, wMonth, wDay) + TimeEdit1.Time;
MyNot.FireDate := dt;
Oder:
var
wYear, wMonth, wDay: Word;
dt: TDateTime;
wYear := ...;
wMonth := ...;
wDay := ...;
dt := EncodeDate(wYear, wMonth, wDay);
ReplaceTime(dt, TimeEdit1.Time);
MyNot.FireDate := dt;
http://docwiki.embarcadero.com/RADStudio/Seattle/en/Using_Notifications#Creating_Notifications – kami
nichts über TimeEdit buddy @kami – ColdZer0
Denken Sie nicht über TTimeEdit nach. Ich denke, dein Problem ist nicht in dieser Kontrolle. Versuchen Sie, 'myNot.FireDate: = IncSecond (Now, 30);' zum Beispiel – kami