张晓军
摘要本文通过实例,详细介绍Timer控件在 VFP表单设计中的灵活应用。利用Timer控件产生形态多样的动画效果。
关键词Timer控件动画效果VFP6.0表单
中图分类号:TP31文献标识码:A
在使用 VF所开发的应用程序中,表单是主要的用户界面,是与系统进行人机对话的主要窗口,也是VF教学中的主要内容。本文主要通过实际应用与教学中的实例来重点介绍Timer控件在表单动画设计中的应用。
1 Timer控件的属性和方法
Timer控件主要有两个属性和一个事件。
1.1 Interval属性
Interval属性决定了时钟事件之间的间隔,以毫秒为单位。其语法格式:thisform.timer1.interval=X,其中,x代表具体的时间间隔,timer1表示控件的名称。
1.2 Enabled属性
用于设置Timer控件是否被启用。默认为.T.,表示控件被启用。在程序中通过设置控Enabled属性值为.T.或者.F.,启动或者停止控件的运行。注意,Timer控件的 Enabled属性和其他对象的 Enabled属性不同。对大多数对象来说,Enabled属性决定对象是否能对用户引起的事件作出反。对计时器控件来说,将 Enabled属性设置为.F.,会挂起计时器的运行。
1.3 Timer事件
表示计时器(Timer)控件执行的动作
2 Timer控件实现动画效果
为了在 Viusual Foxpro中设计的表单更加活泼,我们可以使用Timer控件来实现一些动画效果。
2.1 文本动画的实现
首先在表单上添加标签和Timer控件各一个,将label1的caption属性设置为“向左移动”,将Timer控件的enabled属性设置为.f. ,interval属性设置为50。Timer事件代码如下:
ifthisform.label1.left+thisform.label1.width>0
thisform.label1.left=thisform.label1.left-5 &&每次移动的距离
else
thisform.label1.left=thisform.width
endif
若想让文字向上运动则要这样改动即可,代码如下:
ifthisform.label1.top+thisform.label1.height>0
thisform.label1.top=thisform.label1.top-5
else
thisform.label1.top=thisform.height
endif
2.2 容器动画
新建一个表单,在表单中添加一个容器控件container1,将它的backcolor属性设为0,255,0,name属性设置为rq,tabindex属性设置为1, specialeffect属性设置为1。在右键单击容器rq选者编辑,在容器内部添加一个标签控件label1,将它的属性caption设为“向上运动”Backstyle设为0。添加Timer控件,将interval属性设置为100。Timer事件代码如下:
ifthisform.rq.label1.top>-thisform.rq.label1.height
thisform.rq.label1.top=thisform.rq.label1.top-10
else
thisform.rq.label1.top=thisform.rq.height
endif
这样就完成了容器动画。
从上述三个例子不难看出,不管是文字动画还是容器动画,它们的实质是标签在动,文字则是因为依附标签而运动。对动画的控制是由Timer事件来控制。要想做出更好的动画效果就需要对Timer进行更深入的编写代码。
2.3 闪烁效果
新建一个表单,在表单中添加一个标签控件label1,将它的属性caption设为“欢迎使用”,Autosize设置为.T.,Backstyle设为0,forecolor设置为0,255,0。添加添加Timer控件,将interval属性设置为200。
在timer1的Init事件代码如下:
public a
a=1
Timer事件代码如下:
ifa=1
thisform.label1.forecolor=rgb(255,128,64)
else
thisform.label1.forecolor=thisform.label1.backcolor
endif
a=-a
这样就完成了有着霓虹灯效果的闪烁的动画。