如何设置时间和日期警报?

时间:2020-07-01 20:13:08

标签: delphi events alert delphi-10.3-rio

我想在日历的选定时间和日期设置一个警报,然后收到通知。我怎样才能做到这一点?我想到了使用计时器,并在00:00时计算所有计时器并将其设置为所需的时间间隔。但我想知道是否有更简单的方法...

1 个答案:

答案 0 :(得分:1)

正如您所说,我将它与Timer一起使用。我在下面留下了代码以帮助您。

代码的逻辑是这样;用户设置日期和时间。然后,每次输入记录或打开应用程序时,此信息就会从数据库中刷新。它被添加到StringList。您可以将onAfterOpen或onAfterPost事件用于此添加和刷新事件。

procedure TfrmMain.listUpdate;
begin
  listAlerts.Clear;

  with QryTemp do
  begin
    Close;
    SQL.Clear;
    SQL.Text := 'SELECT * FROM tblAlerts';
    Open;
    First;

    while not Eof do
    begin
      listAlerts.Add(FieldByName('alertDateTime').Value);
      Next;
    end;
  end;
end;

然后,计时器变为活动状态并连续刷新StringList对象。如果有任何数据与当前时间和日期匹配,则会显示警报。

procedure TfrmMain.controlTimer(Sender: TObject);
var
  I: Integer;
begin
    for I := 0 to listAlerts.Count - 1 do
    begin
      if DateTimeToStr(Now) = listAlerts.Strings[I] then
      begin
         ShowMessage('Alert!');
      end;
    end;
  end;

当然,这只是简单的考虑,您可以根据需要进行开发。在这里,我只是试图帮助代码。也许您可以找到更好的技术。 我添加了一个选项。