張曉軍
摘要本文通過(guò)實(shí)例,詳細(xì)介紹Timer控件在 VFP表單設(shè)計(jì)中的靈活應(yīng)用。利用Timer控件產(chǎn)生形態(tài)多樣的動(dòng)畫效果。
關(guān)鍵詞Timer控件動(dòng)畫效果VFP6.0表單
中圖分類號(hào):TP31文獻(xiàn)標(biāo)識(shí)碼:A
在使用 VF所開發(fā)的應(yīng)用程序中,表單是主要的用戶界面,是與系統(tǒng)進(jìn)行人機(jī)對(duì)話的主要窗口,也是VF教學(xué)中的主要內(nèi)容。本文主要通過(guò)實(shí)際應(yīng)用與教學(xué)中的實(shí)例來(lái)重點(diǎn)介紹Timer控件在表單動(dòng)畫設(shè)計(jì)中的應(yīng)用。
1 Timer控件的屬性和方法
Timer控件主要有兩個(gè)屬性和一個(gè)事件。
1.1 Interval屬性
Interval屬性決定了時(shí)鐘事件之間的間隔,以毫秒為單位。其語(yǔ)法格式:thisform.timer1.interval=X,其中,x代表具體的時(shí)間間隔,timer1表示控件的名稱。
1.2 Enabled屬性
用于設(shè)置Timer控件是否被啟用。默認(rèn)為.T.,表示控件被啟用。在程序中通過(guò)設(shè)置控Enabled屬性值為.T.或者.F.,啟動(dòng)或者停止控件的運(yùn)行。注意,Timer控件的 Enabled屬性和其他對(duì)象的 Enabled屬性不同。對(duì)大多數(shù)對(duì)象來(lái)說(shuō),Enabled屬性決定對(duì)象是否能對(duì)用戶引起的事件作出反。對(duì)計(jì)時(shí)器控件來(lái)說(shuō),將 Enabled屬性設(shè)置為.F.,會(huì)掛起計(jì)時(shí)器的運(yùn)行。
1.3 Timer事件
表示計(jì)時(shí)器(Timer)控件執(zhí)行的動(dòng)作
2 Timer控件實(shí)現(xiàn)動(dòng)畫效果
為了在 Viusual Foxpro中設(shè)計(jì)的表單更加活潑,我們可以使用Timer控件來(lái)實(shí)現(xiàn)一些動(dòng)畫效果。
2.1 文本動(dòng)畫的實(shí)現(xiàn)
首先在表單上添加標(biāo)簽和Timer控件各一個(gè),將label1的caption屬性設(shè)置為“向左移動(dòng)”,將Timer控件的enabled屬性設(shè)置為.f. ,interval屬性設(shè)置為50。Timer事件代碼如下:
ifthisform.label1.left+thisform.label1.width>0
thisform.label1.left=thisform.label1.left-5 &&每次移動(dòng)的距離
else
thisform.label1.left=thisform.width
endif
若想讓文字向上運(yùn)動(dòng)則要這樣改動(dòng)即可,代碼如下:
ifthisform.label1.top+thisform.label1.height>0
thisform.label1.top=thisform.label1.top-5
else
thisform.label1.top=thisform.height
endif
2.2 容器動(dòng)畫
新建一個(gè)表單,在表單中添加一個(gè)容器控件container1,將它的backcolor屬性設(shè)為0,255,0,name屬性設(shè)置為rq,tabindex屬性設(shè)置為1, specialeffect屬性設(shè)置為1。在右鍵單擊容器rq選者編輯,在容器內(nèi)部添加一個(gè)標(biāo)簽控件label1,將它的屬性caption設(shè)為“向上運(yùn)動(dòng)”Backstyle設(shè)為0。添加Timer控件,將interval屬性設(shè)置為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
這樣就完成了容器動(dòng)畫。
從上述三個(gè)例子不難看出,不管是文字動(dòng)畫還是容器動(dòng)畫,它們的實(shí)質(zhì)是標(biāo)簽在動(dòng),文字則是因?yàn)橐栏綐?biāo)簽而運(yùn)動(dòng)。對(duì)動(dòng)畫的控制是由Timer事件來(lái)控制。要想做出更好的動(dòng)畫效果就需要對(duì)Timer進(jìn)行更深入的編寫代碼。
2.3 閃爍效果
新建一個(gè)表單,在表單中添加一個(gè)標(biāo)簽控件label1,將它的屬性caption設(shè)為“歡迎使用”,Autosize設(shè)置為.T.,Backstyle設(shè)為0,forecolor設(shè)置為0,255,0。添加添加Timer控件,將interval屬性設(shè)置為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
這樣就完成了有著霓虹燈效果的閃爍的動(dòng)畫。