Now()
возвращает TDateTime
, который представляет текущую дату / время часов. Затем вы добавляете введенное пользователем время относительно текущей даты / времени. Например, если пользователь вводит 00:05:00
, вы добавите 5 минут к текущей дате / времени.
Если вы хотите, чтобы уведомление запускалось в определенное время текущей даты, используйте функцию Date()
вместо функции Now()
, чтобы вы добавляли введенное время относительно полуночи (00:00:00am
):
MyNot.FireDate := Date + TimeEdit1.Time;
В качестве альтернативы вы можете использовать вместо этого функцию SysUtils.ReplaceTime()
:
var
dt: TDateTime;
dt := Date;
ReplaceTime(dt, TimeEdit1.Time);
MyNot.FireDate := dt;
Это дает дополнительное преимущество: вы можете настроить любую дату, которую хотите, например, с помощью функции SysUtils.EncodeDate()
:
var
wYear, wMonth, wDay: Word;
dt: TDateTime;
wYear := ...;
wMonth := ...;
wDay := ...;
dt := EncodeDate(wYear, wMonth, wDay) + TimeEdit1.Time;
MyNot.FireDate := dt;
Or:
var
wYear, wMonth, wDay: Word;
dt: TDateTime;
wYear := ...;
wMonth := ...;
wDay := ...;
dt := EncodeDate(wYear, wMonth, wDay);
ReplaceTime(dt, TimeEdit1.Time);
MyNot.FireDate := dt;
person
Remy Lebeau
schedule
24.03.2016
myNot.FireDate:=IncSecond(Now, 30);
- person kami   schedule 24.03.2016MyNot.FireDate := Now + TimeEdit1.Time;
@kami - person ColdZer0   schedule 24.03.2016TimeEdit1
. Что-то вроде00:05:00
. Значение, которое пользователь вводит в этот элемент управления. - person kami   schedule 24.03.2016TTimeEdit
представляет собой абсолютное время суток. Вы добавляете это к метке текущего времени. Итак, вы хотите, чтобы уведомление запускалось через 5 минут после текущей даты / времени или вы хотите, чтобы оно запускалось ровно в 12:05 текущей даты? Это две совершенно разные вещи. Итак, чего вы на самом деле пытаетесь достичь? Если вы хотите срабатывать в определенное время определенной даты, посмотрите на такие функции, какEncodeDateTime()
,ReplaceTime()
и т. Д. - person Remy Lebeau   schedule 24.03.2016