VFP制作亚运会倒计时器

 我来答
匿名用户
2013-11-12
展开全部
 摘 要:本文先容了利用Visual FoxPro 6.0设计倒计时器的两种方法,给出了程序,并比力了两种方法的优劣。
  要害词:倒计时器;Visual FoxPro;程序设计
  1 弁言
  在程序设计以及软件开发中,经常需要设计计时器,如:秒表、正计时器、倒计时器等。这些计时器的设计方法大同小异,本文以倒计时器设计为例先容两种设计倒计时器的方法。
  Visual FoxPro中的计时器控件有1个Timer事件,每颠末Interval(单位为毫秒)属性指定的时间就执行该事件一次。利用该控件的这一独特之处再配合一些程序可设计各种计时器,包括倒计时器。
  2 利用计时器控件以及配置统计变量设计倒计时器
  2.1 设计思想
  程序中用1个统计变量t来实现计时,在表单的Init事件中给t赋初值5400(本例中倒计时时间设为90分钟,即5400秒)。程序中用到1个计时器控件,配置计时器控件的Interval属性为1000(即1秒),则它每秒钟被触发一次。在计时器的Timer事件代码中加入t=t-1,则每隔1秒钟t递降1,5400秒后t减到0,定时时间到。程序中还用到3个变量th、tm、ts,别离用来表示剩余时间的时、分、秒,用于将剩余时间t用时分秒的格式显示。
  在表单的Init事件代码中包含thisform.timer1.enabled=.F.,再在"开始"按钮的Click事件代码中加入代码:thisform.timer1.enabled=.T.。这样当单击"开始"按钮时才开始计时。
  时间设为90分钟,即5400秒)。程序中用到1个计时器控件,配置计时器控件的Interval属性为1000(即1秒),则它每秒钟被触发一次。在计时器的Timer事件代码中加入t=t-1,则每隔1秒钟t递降1,5400秒后t减到0,定时时间到。程序中还用到3个变量th、tm、ts,别离用来表示剩余时间的时、分、秒,用于将剩余时间t用时分秒的格式显示。
  在表单的Init事件代码中包含thisform.timer1.enabled=.F.,再在"开始"按钮的Click事件代码中加入代码:thisform.timer1.enabled=.T.。这样当单击"开始"按钮时才开始计时。
  2.2 程序详细登记单
  ⑴表单Form1的Init事件代码:
  thisform.timer1.enabled=.F.
  public t
  t=5400
  (2)标签Label1的属性
  Caption:剩余时间
  ⑶标签Label2的属性
  Caption:90分钟
  (4)计时器Timer1的属性
  Interval:1000
  计时器Timer1的timer事件代码:
  ift<=0
  messagebox(″定时时间到!″)
  else
  th=int(t/3600)
  tm=int((t-th*3600)/60)
  ts=t-th*3600-tm*60
  thisfor m.label2.caption=str(th,2)+″:″+str(tm,2)
  +″:″+str(ts,2)
  endif
  t=t-1
  ⑸命令按钮Command1的属性
  Caption:退出
  命令按钮Command1的Click事件代码:
  thisform.timer1.enabled=.T.
  (6)命令按钮Command2的属性
  Caption:退出
  命令按钮Command2的Click事件代码:
  release thisform
  2.3 表单运行结果
  本表单包含两个标签控件以及两个命令按钮,运行结果如图1所示。
  3 利用计时器控件以及时间函数设计倒计时器
  3.1 设计思想
  本程序通过计时器控件以及时间函数seconds()来设计倒计时器。seconds()函数可以以秒为单位归回自午夜以来颠末的时间。在"开始"按钮的Click事件中加入代码:t0=seconds()。在计时器控件的Timer事件代码中加入:t1=seconds()、t2=5400+t0、t3=t2-t1。t0为单击"开始"按钮时离午夜的时间,t1为计时器每次触发时距午夜的时间,t2为定时结束时距午夜的时间,t3为剩余时间。
  3.2 程序详细登记单
  ⑴表单Form1的Init事件代码:
  thisform.timer1.enabled=.F.
  (2)标签Label1的属性
  Caption:剩余时间
  ⑶标签Label2的属性
  Caption:90分钟
  (4)计时器Timer1的属性
  Interval:500
  计时器Timer1的timer事件代码:
  t1=seconds()
  t2=5400+t0
  t3=t2-t1
  if t3<=0
  messagebox(″定时时间到!″)
  else
  th=int(t3/3600)
  tm=int((t3-th*3600)/60)
  ts=t3-th*3600-tm*60
  thisform.label5.caption=str(th,2)+″:″+str(tm,2)
  +″:″+str(ts,2)
  endif
  ⑸命令按钮Command1的属性
  Caption:开始
  命令按钮Command1的Click事件代码:
  public t0
  t0=seconds()
  thisform.timer1.enabled=.t.
  this.enabled=.f.
  (6)命令按钮Command2的属性
  Caption:退出
  命令按钮Command2的Click事件代码:
  release thisform
  4 两种设计方法的比力及结论
  熬头种方法是用得较多的,作者所见到的计时器设计多近似此法,但颠末本人重复验证,发现此法设计的计时器不敷精确,每分钟比实际时间慢5秒。当然可以通过算法校正。
  第二种方法由于用到了时间函数,以是计时精确,由于巧妙地运用了seconds()函数,它并不要求计算机的时间配置精确。
  当然,利用计算机计时的任何计时器都受计算机CPU时钟频率精确度的影响,两种方法设计的计时器也不破例。 种别:About Computer

我也不太懂,试试看。。
北京赛康精益信息技术有限责任公司
2023-08-27 广告
作为北京赛康精益信息技术有限责任公司的工作人员,我无法具体推荐某一家发令电子计时系统品牌,因为选择合适的发令电子计时系统需要根据具体的应用场景和技术需求进行评估。市场上有很多品牌的发令电子计时系统,性能和质量也各不相同。您可以参考相关的产品... 点击进入详情页
本回答由北京赛康精益信息技术有限责任公司提供
匿名用户
2013-11-12
展开全部
穿越版的没把
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式