如何使用TimeEdit触发通知

时间:2016-03-24 09:37:35

标签: android notifications firemonkey delphi-10-seattle

我尝试使用TimeEdit在特定时间触发通知,但它没有用! 我使用的代码..

try
MyNot.Name := Edit1.Text;
MyNot.AlertBody := Edit2.Text;
MyNot.FireDate := Now + TimeEdit1.Time;
NotificationCenter1.ScheduleNotification(MyNot);
Finally
MyNot.DisposeOf;

我正在使用Delphi10 Seattle Update1。

1 个答案:

答案 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;