Database 版 (精华区)
发信人: mengy (LEAR DLLS 命令时,将从内存中清除), 信区: Database
标 题: VFP做一个小巧的计时器
发信站: 哈工大紫丁香 (2000年12月30日18:24:34 星期六), 转信
一个小巧的计时器
嘀哒作响的计时器是件有趣的小玩艺,想不想在计算机上也做一个,下面我们
就来介绍如何用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
在项目管理器中连编可执行文件,并取好文件名。
至此,一个小巧的计时器便完成了。用鼠标点击启动它后,在屏住呼吸的同时
回车开始,能在两分钟后再回车结束吗?测试一下你的潜水能力,也是蛮有趣的
!
返回首页
--
大海无边天做岸
山登绝顶我为风
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.227.121]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.273毫秒