vfp设计倒计时.doc_第1页
vfp设计倒计时.doc_第2页
vfp设计倒计时.doc_第3页
vfp设计倒计时.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VFP中倒计时器的设计摘要:本文介绍了利用Visual FoxPro 60设计倒计时器的两种方法,给出了程序,并比较了两种方法的优劣。关键词:倒计时器;Visual FoxPro;程序设计1引言在程序设计和软件开发中,经常需要设计计时器,如:秒表、正计时器、倒计时器等。这些计时器的设计方法大同小异,本文以倒计时器设计为例介绍两种设计倒计时器的方法。Visual FoxPro中的计时器控件有一个Timer事件,每经过Interval(单位为毫秒)属性指定的时间就执行该事件一次。利用该控件的这一特点再配合一些程序可设计各种计时器,包括倒计时器。2利用计时器控件和设置计数变量设计倒计时器21设计思想程序中用一个计数变量t来实现计时,在表单的Init事件中给t赋初值5400(本例中倒计时时间设为90分钟,即5400秒)。程序中用到一个计时器控件,设置计时器控件的Interval属性为1000(即1秒),则它每秒钟被触发一次。在计时器的Timer事件代码中加入tt1,则每隔1秒钟t递减1,5400秒后t减到0,定时时间到。程序中还用到3个变量th、tm、ts,分别用来表示剩余时间的时、分、秒,用于将剩余时间t用时分秒的格式显示。在表单的Init事件代码中包含thisformtimer1enabledF,再在“开始”按钮的Click事件代码中加入代码:thisformtimer1enabledT。这样当单击“开始”按钮时才开始计时。22程序清单表单Form1的Init事件代码:thisformtimer1enabledFpublic tt5400标签Label1的属性Caption:剩余时间标签Label2的属性Caption:90分钟计时器Timer1的属性Interval:1000计时器Timer1的timer事件代码:if t0 messagebox(定时时间到!)elsethint(t3600)tmint(tth3600)60)tstth3600tm60thisfor mlabel2captionstr(th,2):str(tm,2):str(ts,2)endiftt1命令按钮Command1的属性Caption:开始 命令按钮Command1的Click事件代码:thisformtimer1enabledT命令按钮Command2的属性Caption:退出命令按钮Command2的Click事件代码:release thisform23表单运行结果本表单包含两个标签控件和两个命令按钮,运行结果如图1所示。3利用计时器控件和时间函数设计倒计时器31设计思想本程序通过计时器控件和时间函数seconds()来设计倒计时器。seconds()函数可以以秒为单位返回自午夜以来经过的时间。在“开始”按钮的Click事件中加入代码:t0seconds()。在计时器控件的Timer事件代码中加入:t1seconds()、t25400t0、t3t2t1。t0为单击“开始”按钮时离午夜的时间,t1为计时器每次触发时距午夜的时间,t2为定时结束时距午夜的时间,t3为剩余时间。32程序清单表单Form1的Init事件代码:thisformtimer1enabledF标签Label1的属性Caption:剩余时间标签Label2的属性Caption:90分钟计时器Timer1的属性Interval:500计时器Timer1的timer事件代码:t1seconds()t25400t0t3t2t1if t30messagebox(定时时间到!)elsethint(t33600)tmint(t3th3600)60)tst3th3600tm60thisformlabel5captionstr(th,2):str(tm,2):str(ts,2)endif命令按钮Command1的属性Caption:开始命令按钮Command1的Click事件代码:public t0t0seconds()thisformtimer1enabledtthisenabledf命令按钮Command2的属性Caption:退出命令按钮Command2的Click事件代码:release thisform4两种设计方法的比较及结论第一种方法是用得较多的,笔者所见到的计时器设计多类似此法,但经过本人反复验证,发现此法设计的计时器不够准确,每分钟比实际时间慢5秒。当然可以通过算法校正。第二种方法由于用到了时间函数,所以计时准确,由于巧妙地运用了seconds()函数,它并不要求计算机的时间设置准确。当然,利用计算机计时的任何计时器都受计算机CPU时钟频率准确度的影响,两种方法设计的计时器也不例外。do case case n=1 if a=3 b=7 else if a=15.1 b=7+(a-3)*1000/550 else b=7+12.1*1000/550+(a-15.1)*1000/370 endif

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论