如果我设定某个日期时间为提醒时间,比如:2015-06-16 10:00 这个时间为设定时间,如果当系统时间等于这个时间时,则跳出提醒窗口,请问大侠们怎么实现,我是用delphi sqlserver,谢谢!
备注:不管我当前在那个窗体,一到时间就提醒,是不是每个窗体都要放写timer事件

解决方案 »

  1.   

    主窗体放个 timer procedure TForm2.Timer1Timer(Sender: TObject);
    var
      dt : TDateTime;
    begin
      dt := StrToDateTime('2015-06-16 10:00:00');
      if (now() >= dt) and (now() < dt+1/24/60) then     //在一分钟内都有效. 当然你也可以只用 (now() = dt) 来判断, 这时你timer 的 interval 则必需小于等于 1000
      begin
        Timer1.Enabled := false ;
        //执行提醒
      end;
    end;
      

  2.   

    一般在主窗口,放一个Timer控件,不要多设。Timer控件是独立线程,战用CPU时间。
    所有的时间判断,都可以在此Timer时,判断运行。
     
    楼上的代码需要优化,因为Timer是以1秒左右时间间隔判断,一分钟内,可以有60次的机会。
      

  3.   

    其实这个满麻烦的基本按lyhoo163说的。占用系统性能。其实认真考虑需求这种真的没必要