我尝试使用TimeEdit在特定时间触发通知,但它没有用! 我使用的代码..
try
MyNot.Name := Edit1.Text;
MyNot.AlertBody := Edit2.Text;
MyNot.FireDate := Now + TimeEdit1.Time;
NotificationCenter1.ScheduleNotification(MyNot);
Finally
MyNot.DisposeOf;
我正在使用Delphi10 Seattle Update1。
答案 0 :(得分:0)
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;
或者:
var
wYear, wMonth, wDay: Word;
dt: TDateTime;
wYear := ...;
wMonth := ...;
wDay := ...;
dt := EncodeDate(wYear, wMonth, wDay);
ReplaceTime(dt, TimeEdit1.Time);
MyNot.FireDate := dt;