摘要本文通過實例,詳細介紹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
這樣就完成了有著霓虹燈效果的閃爍的動畫。