关于数据库循环的简单问题(20)

  • 主题发起人 主题发起人 terry_zhou82
  • 开始时间 开始时间
T

terry_zhou82

Unregistered / Unconfirmed
GUEST, unregistred user!
我用了TABLE控件。里面按照时间分类有n多条记录,我想根据时间来测试,只要时间相等则运行相应的操作,比如20:00干么,22:00干么,等等,现在的问题是我怎么用循环来做。我试图添了一个TIMER控件来写循环,没1分钟执行一次,但是当程序运行到此处却没有任何反应,这个是何故啊?procedure TForm1.Timer4Timer(Sender: TObject);//间隔为1分中刷新。begin// ABSTable1.first;// while not ABSTable1.eof do// begin// timer3.enabled:=true;//间隔为1秒// ABSTable1.next// end;procedure TForm1.Timer3Timer(Sender: TObject);var s1:string;begin if (FormatDateTime('yy:mm:dd',now)=FormatDateTime('yy:mm:dd',ABSTable1.FieldByName('提醒日期').AsDateTime)) and (formatdatetime('HHNNSS',now)=formatdatetime('HHNNSS',ABSTable1.FieldByName('提醒时间').AsDateTime)) thenbegin s1:=ABSTable1.FieldByName('提醒类型').AsString; if s1 = '气泡提示'then begin BASS_Init(-1,44100,0,0,nil); Ballontip;// BASS_Free; end; if s1 = '闪屏振动'then begin BASS_Init(-1,44100,0,0,nil); Shakewindows; end; end;end;
 
等于不容易做到,now得到的时间太精确了
 
我现在已经可以做到时间一致时,执行某些过程,关键就是这个循环不会写,就是让他没到一个时间点就执行一下程序。
 
你是1分钟执行一次,但是比较的时间单位是秒
 
你可以设定一个值判断上次执行的时间,如果这个时间尚未执行过,那么执行
 
如果这个时间尚未执行过,而且超过了时间,那么执行
 
个人认为,应该先把你需要的那些记录保存到本地.然后新建一个线程,不停地取系统时间与你的数据比较
 
to:楼上2位,可否帮我改下代码,还有,PROGRAMSKY,如果我是以分来比较单位呢?改怎么该代码啊?
 
我想到一点,是不是可以用TABLE的RECNO的属性,但是这么做的话,界面都会在不停的刷新,好像不太好看。
 
if now >= ABSTable1.FieldByName('提醒日期').AsDateTime then ...夜里还加班,辛苦!如果程序不大,代码发给我,我来帮你写。
 
接受答案了.
 
数组记录需要提示的时间、类型,线程检测当前时间与数组记录的时间是否相符,相符即按照提示类型显示提示信息。
 
问题还没有完?有谁可以帮我写段具体的线程代码啊?分数我会另外给的
 
后退
顶部