我想在日历的选定时间和日期设置一个警报,然后收到通知。我怎样才能做到这一点?我想到了使用计时器,并在00:00时计算所有计时器并将其设置为所需的时间间隔。但我想知道是否有更简单的方法...
答案 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;
当然,这只是简单的考虑,您可以根据需要进行开发。在这里,我只是试图帮助代码。也许您可以找到更好的技术。 我添加了一个选项。