【问题标题】:How to fire notification using TimeEdit如何使用 TimeEdit 触发通知
【发布时间】:2016-03-24 09:37:34
【问题描述】:

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

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

我正在使用 Delphi10 Seattle Update1。

【问题讨论】:

  • 与 TimeEdit 好友@kami 无关
  • 不要考虑 TTimeEdit。我认为,您的问题不在此控制范围内。例如尝试使用myNot.FireDate:=IncSecond(Now, 30);
  • 它使用 InSecond 工作,但我无法使用 TimeEdit 触发通知! @kami
  • 你传递给 TimeEdit 什么值?

标签: android notifications firemonkey delphi-10-seattle


【解决方案1】:

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;

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-06
  • 1970-01-01
  • 2021-07-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多