一个小巧的计时器

 


  嘀哒作响的计时器是件有趣的小玩艺,想不想在计算机上也做一个,下面我们就来介绍如何用Visual FoxPro做一个计时器。


  一、新建一个表单


  打开VFP 新建一个项目时取名timer.pjx,在项目中新建一个表单取名为timer.frm,并为这个表单准备一张漂亮的图片。


  二、为表单添加控件及方法


  在表单中依次添加五个标签(Label)、四个文本框(Text)、三个命令按钮(Command)和一个计时器(Timer)。

  五个标签的Caption属性分别为跑表、时、分、秒、百分秒;Autosize属性设为 .T.;Tabstop属性设为 .F.;Backstyle属性设为 0。

  文本框是用来显示时间的,只需把Readonly属性设置为.T.;Tabstop属性设为 .F.。

  三个命令按钮的Caption属性分别设置为开始、结束、退出;Tabindex属性分别为 1、2、3。

  计时器的Enabled属性设为.F.;Interval属性设为50。

  在Command1的Click事件加入如下语句:

  thisform.timer1.enabled=.T. &&打开计时器

  publ basetime,resultime,seconds1 &&设定三个变量

  basettime=ctot(time())

  seconds1=seconds()

  thisform.text1.value=0

  thisform.text2.value=0

  thisform.text3.value=0

  thisform.text4.value=0 &&为清零做好准备

  在Command2的Click事件中加入如下语句:

  thisform.timer1.enabled=.F.

  在Command3.的Click事件中加入如下语句:

  release thisform

  clear events

  quit

  在Timer1的Time事件中加入以下语句:

  seconds2=int((seconds()-seconds1)*100)

   if seconds2<100

   thisform.text4.value=seconds2

  else

  thisform.text4.value=seconds2-int(seconds2/100)*100

  endif &&上面的条件语句用来计算百分秒并显示

  resultime=ctot(time())

  result=0

  result=(resultime-basetime)

  if result<60

  thisform.text3.value=result &&确定秒

  else

  if thisform.text2.value<60

  thisform.text2.value=int(result/60)

   &&确定分

  else

  thisform.text1.value=int(thisform.text2.value/60)

   &&确定小时

  thisform.text2.value=thisform.text2.value-int(thisform.text2.value/60)*60  &&确定分

  endif

  thisform.text3.value=result-int(result/60)*60

   &&确定秒

  endif


  三、设置表单属性


  为timer.frm设置属性如下:

  Name :Form1 Caption:跑表 ShowWindow:2

  AutoCenter:.T. ShowTips:.T. BorderStyle:1

  WindowState:0 MaxButton:.F. Picture:自定义

  Closable:.F. Controlbox:.F. MinButton :.F.

  Movable:.F.


  四、连编执行程序


  最后写两句主程序:

    do form timer.frm

    read events

  在项目管理器中连编可执行文件,并取好文件名。

  至此,一个小巧的计时器便完成了。用鼠标点击启动它后,在屏住呼吸的同时回车开始,能在两分钟后再回车结束吗?测试一下你的潜水能力,也是蛮有趣的!