首页 > 范文大全 > 正文

巧用VFP中的TIMER控件

开篇:润墨网以专业的文秘视角,为您筛选了一篇巧用VFP中的TIMER控件范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:计时器timer是Visual FoxPro(简称vfp)的新增控件。它提供了计时功能,即每隔一段指定的时间间隔就响应一次TIMER事件,执行相应的程序代码,用于控制某些进程。本文给出计时器控件的几个的用法。

关键词:TIMER;控件;表单; 属性;事件代码

中图分类号:TP312文献标识码:A文章编号:1009-3044(2007)06-11515-02

1 序言

VFP作为20世纪90年代兴起的高级数据库管理软件,具有性能完善的编程语言、完整而丰富的工具、超高速的速度、极其友好的界面等特点,倍受用户的欢迎。它在20世纪80年代流行的XBASE系统软件的基础上提供了诸多新的功能,计时器TIMER是Visual FoxPro(简称VFP)的新增控件,就它的用法总结如下。

2 控制倒计时

我们经常在一些考试系统的界面上,可以看到有一个倒计时器控制考试的时间,这种倒计时的控制可以利用Visual FoxPro的TIMER控件进行设计。

创建控制倒计时表单的过程(该程序控制的时间为10分钟,该时间可以根据具体情况进行调整。)

(1)创建一个新表单。

设置表单的CAPTION属性为“倒计时”,适当调整表单的大小。

设置表单的LOAD事件代码:

PUBLICJ

J=0

(2)在表单上添加两个标签控件,名称分别为LABEL1和LABEL2,将LABEL1的CAPTION属性设置为“剩余时间”,将LABEL1的CAPTION属性设置为“10:00” ,适当调整标签的高度、宽度、字号、字体等。

(3)在表单上添加两个命令按钮控件,名称分别为COMMAND1、COMMAND2,将COMMAND1的CAPTION 属性设置为“开始计时”,将COMMAND2的CAPTION 属性设置为“退出”,适当调整命令按钮的高度、宽度、字号、字体等。

(4)在表单上添加一个计时器控件,名称为“TIMER1”

设置TIMER1 的INTERVAL属性为1000,ENABLED属性设置为 .F..

(5)设置COMMAND1的CLICK 事件代码如下:

ENABLED=.T.

(6)设置COMMAND2的CLICK 事件代码如下:

RELESE THISFORM

(7)设置TIMER1的TIMER事件代码如下:

T=60000

J=J+1

IFT-J=0

RELESETHISFORM

ELSE

A=INT((T-J)/60)

B=MOD((T-J),60)

THISFORM.LABEL2.CAPTION=STR(A,2)+":"+STR(B,2)

ENDIF

运行表单即可实现倒计时的功能。

3 设计动态的字符串

我们经常看到在某些界面上对象可以动态变化,上下移动、左右移动、字号越来越大、越来越小等各种变化。这些变化都可以通过TIMER控件进行控制。

创建标签对象能够移动的表单设计过程:

(1)创建一个新表单。

(2)在表单上添加一个标签控件,名称为“LABEL1”,设置其CAPTION属性为“计时器的应用”,适当调整标签的高度、宽度、字号、字体等。

(3)表单上添加一个计时器控件,名称为“TIMER1”,设置TIMER1 的INTERVAL属性为200。(间隔时间可以调整)

(4)设置TIMER1的TIMER事件代码

如果从左向右循环移动,则TIMER1的TIMER事件代码如下:

IF THISFORM.LABEL1.LEFT

THISFORM.LABEL1.LEFT= THISFORM.LABEL1.LEFT+4

*该句的“4”用来控制向右移动的速度,可以根据具体情况调整

ELSE

THISFORM.LABEL1.LEFT=0

ENDIF

如果从上向下循环移动,则TIMER1的TIMER事件代码如下:

IF THISFORM.LABEL1.TOP>0

THISFORM.LABEL1.TOP= THISFORM.LABEL1.TOP-4

*该句的“4”用来控制向上移动的速度,可以根据具体情况调整

ELSE

THISFORM.LABEL1.TOP=THISFORM.WIDTH-THISFORM.LABEL1.WIDTH

ENDIF

如果从左下角向右上角循环移动,则TIMER1的TIMER事件代码如下:

IF THISFORM.LABEL1.LEFT0

THISFORM.LABEL1.LEFT=THISFORM.LABEL1.LEFT+4

THISFORM.LABEL1.TOP=THISFORM.LABEL1.TOP-4

ELSE

THISFORM.LABEL1.LEFT=0

THISFORM.LABEL1.TOP=THISFORM.HEIGHT-THISFORM.LABEL1.HEIGHT

ENDIF

还可以利用随机函数控制标签以随机速度向随机方向循环移动。则TIMER1的TIMER事件代码如下:

IF INT(10*RAND())>5

IF THISFORM.LABEL1.LEFT=0

THISFORM.LABEL1.LEFT=THISFORM.LABEL1.LEFT+INT(10*RAND())

THISFORM.LABEL1.TOP=THISFORM.LABEL1.TOP-INT(10*RAND())

ELSE

THISFORM.LABEL1.LEFT=0THISFORM.LABEL1.TOP=THISFORM.HEIGHT-THISFORM.LABEL1.HEIGHT

ENDIF

ELSE

IF THISFORM.LABEL1.LEFT>0AND;THISFORM.LABEL1.TOP

THISFORM.LABEL1.LEFT=THISFORM.LABEL1.LEFT-INT(10*RAND())

THISFORM.LABEL1.TOP=THISFORM.LABEL1.TOP+INT(10*RAND())

ELSE

THISFORM.LABEL1.LEFT=THISFORM.WIDTH

THISFORM.LABEL1.TOP=0

ENDIF

ENDIF

对上述程序稍加修改,可以设计出控制其他对象、其他方向、其他移动速度、其他方式变化的表单。

4 动画设计

用VFP可以设计动画,方法之一是:利用TIMER控件的INTERVAL属性和图象控件VISIBLE属性,控制图象的连续播放,实现动画效果。下面通过一个具体例子说明。

(在进行设计之前假设已经通过其他方法获得3张动作有些连贯的图片,文件名字分别HW1.BMP、HW2.BMP、HW3.BMP)

(1)创建一个新表单。

(2)在表单上添加三个图象控件,名字分别为IMAGE1、IMAGE2、IMAGE3,PICTURE属性分别为HW1.BMP、HW2.BMP、HW3.BMP,IMAGE1的VISIBLE属性设为.T.,IMAGE2的VISIBLE属性设为.F.,IMAGE3的VISIBLE属性设为.F.,IMAGE1、IMAGE2、IMAGE3的大小、位置可以根据具体情况调整。

(3)在表单上添加一个计时器控件,名称为“TIMER1”,设置TIMER1 的INTERVAL属性为200,ENABLED属性设置为 .F.(间隔时间可以调整)。

(4)在表单上添加两个命令按钮控件,名称分别为COMMAND1、COMMAND2,将COMMAND1的CAPTION 属性设置为“开始播放”,将COMMAND2的CAPTION 属性设置为“退出”,适当调整命令按钮的高度、宽度、字号、字体等。

(5)设置COMMAND1的CLICK 事件代码如下:

ENABLED=.T.

(6)设置COMMAND2的CLICK 事件代码如下:

RELESE THISFORM

(7)设置TIMER1的TIMER事件代码如下:

DO CASE

CASE THISFORM.IMAGE1.VISIBLE=.T.

THISFORM.IMAGE2.VISIBLE=.T.

THISFORM.IMAGE1.VISIBLE=.F.

THISFORM.IMAGE3.VISIBLE=.F.

CASE THISFORM.IMAGE2.VISIBLE=.T.

THISFORM.IMAGE3.VISIBLE=.T.

THISFORM.IMAGE1.VISIBLE=.F.

THISFORM.IMAGE2.VISIBLE=.F.

CASE THISFORM.IMAGE3.VISIBLE=.T.

THISFORM.IMAGE1.VISIBLE=.T.

THISFORM.IMAGE3.VISIBLE=.F.

THISFORM.IMAGE2.VISIBLE=.F.

ENDCASE

运行该表单就可以实现动画效果。

5 结束语

本文给出了TIMER控件的几种用法,起抛砖引玉的作用。TIMER控件的作用还有待进一步挖掘。

参考文献:

[1]龚沛曾,陆尉民,杨志强.Visual Basic程序设计简明教程[M].高等教育出版社,2001,154-156.

[2]上海东方激光照排有限责任公司.著.Visual FoxPro程序设计[M].中国民航出版社,2001,110-112.

[3]刘瑞新,文成林,汪远征.Visual FoxPro程序设计教程[M].机械工业出版社,2004,86-89.

[4]崔巍,吴秋霞.Visual FoxPro数据库应用与程序设计[M].高等教育出版社,2004,229-230.

本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。