周小平
【摘 要】文章介紹了PowerBuilder中一些常用事件、常用函數(shù),在此基礎(chǔ)上詳細(xì)介紹了如何實(shí)現(xiàn)文字的滾動(dòng)以及窗口的移動(dòng)。
【關(guān)鍵詞】PowerBuilder;動(dòng)畫;窗口
0.引言
作為一款優(yōu)秀的企業(yè)級(jí)數(shù)據(jù)庫前端應(yīng)用開發(fā)工具,不僅提供簡(jiǎn)潔友好的用戶界面,而且擁有功能強(qiáng)大的數(shù)據(jù)窗口技術(shù)以及性能優(yōu)越的數(shù)據(jù)庫訪問能力,所以很多程序開發(fā)人員都很喜歡它,PowerBuilder是當(dāng)前最流行的數(shù)據(jù)庫前端開發(fā)工具之一。
在PowerBuilder中定義了很多事件和函數(shù),程序開發(fā)人員利用這些事件和函數(shù)不僅能提高工作效率,而且能實(shí)現(xiàn)各種功能,比如查詢、錄入等。本文在介紹相關(guān)的常用事件、常用函數(shù)以及使用方法之后,通過具體的實(shí)例在PowerBuilder來實(shí)現(xiàn)動(dòng)畫效果。
1.基本知識(shí)介紹
要想在PowerBuilder實(shí)現(xiàn)動(dòng)畫效果,我們可以利用Timer事件和Timer函數(shù)。
1.1常用事件
Open事件:在窗口打開之后、顯示之前發(fā)生,這時(shí)系統(tǒng)已經(jīng)包含窗口所有屬性以及窗口中的所有控件。
Timer事件:定時(shí)器事件,跟Timer ()函數(shù)結(jié)合在一起,給程序開發(fā)者提供了許多便利。
1.2常用函數(shù)[1]
Timer (number ):設(shè)置一個(gè)時(shí)間間隔,在設(shè)置的時(shí)間間隔內(nèi)反復(fù)觸發(fā)指定窗口的定時(shí)器事件,從而達(dá)到用戶想要的目的。
Space( ):返回指定數(shù)目的空格組成的字符串,如space(3),則返回具有三個(gè)空格的字符串;
Len(string ):取得指定字符串的長度。
Right(string,n):從指定字符串尾部取指定個(gè)數(shù)的字符。
Left(string,n):得到字指定符串左部指定個(gè)數(shù)的字符。
SetRedraw():用來關(guān)閉或開啟控件的重畫功能。
2.動(dòng)畫效果的實(shí)現(xiàn)
在PowerBuilder中我們要想直接播放動(dòng)畫文件(如flash動(dòng)畫文件)是有一定的難度的,但是我們要想實(shí)現(xiàn)一些相對(duì)簡(jiǎn)單的動(dòng)畫效果還是比較容易的,我們可以利用PowerBuilder中的Timer()來實(shí)現(xiàn)此效果。下面分別介紹文字的滾動(dòng)和窗口動(dòng)畫顯示效果的實(shí)現(xiàn)方法。在此之間先新建一個(gè)應(yīng)用程序,然后新建2個(gè)窗口,分別命名為w_flash1、w_flash2,在w_flash1、w_flash2中分別插入一個(gè)靜態(tài)文本控件,文本內(nèi)容(text)分別為“文字的滾動(dòng)”和“動(dòng)畫顯示窗口”。
2.1 滾動(dòng)的文字
(1)在應(yīng)用程序?qū)ο罄锞帉憜?dòng)代碼:
Open(w_flash1)
(2)在w_flash1的open( )事件里編寫:
St_2.text =st_2.text+space(int(w_about.width/20))
Timer(0.05) //每隔0.05秒觸發(fā)timer( )事件
(3)在w_flash1的timer( )事件里編寫:
String ls_help,ls_banner
Long len
Ls_banner=st_2.text
Len =len(st_2.text)
Ls_help=right(ls_banner,len-2)+left(ls_banner,2)
St_2.text=ls_help
2.2窗口的動(dòng)畫顯示
(1)在應(yīng)用程序?qū)ο罄锞帉憜?dòng)代碼:
Open(w_flash2)
(2)在窗口w_flash2的open( )事件里面編寫如下代碼:
Timer(1)//表示每隔1秒觸發(fā)timer( )事件
(3)在窗口的設(shè)計(jì)視圖區(qū)選擇“Declare Instance variables”選項(xiàng)卡,在其中聲明一個(gè)實(shí)例變量:
Integer ii_i=1
(4)在主窗口W_flash的 timer( )事件里編寫如下代碼,以完成窗口動(dòng)畫顯示的功能(以下只給出讓窗口向下、向右下、向右移動(dòng)的代碼,如果想讓其向上、向左、向左上移動(dòng),只需修改稍微修改下代碼即可)。
Integer li_num
If ii_i=1 then
For li_num=1 to 1540 step 1
W_flash.move(1,li_num) //Y坐標(biāo)遞增,圖形向下移
Next
Ii_i++
W_flash.move(1,1)
W_flash.setredraw(true)
Return
End if
If ii_i=2 then
For li_num=1 to 1540step 1
W_flash.move(li_num,li_num)//X、Y坐標(biāo)遞增,圖形向右下下移
Next
Ii_i++
W_flash.move(1,1)
W_flash.setredraw(true)
Return
End if
If ii_i=3 then
For li_num=1 to 1540 step 1
W_flash.move(li_num,1)//X坐標(biāo)遞增,圖形向右移
Next
Ii_i++
W_flash.move(1,1)
W_flash.setredraw(true)
Return
End if
3.結(jié)束語
PowerBuilder是一款優(yōu)秀的企業(yè)級(jí)數(shù)據(jù)庫前端應(yīng)用開發(fā)工具,是當(dāng)前最流行的數(shù)據(jù)庫前端開發(fā)工具之一。在PB中,利用Timer()能夠?qū)崿F(xiàn)動(dòng)畫效果,從而使得設(shè)計(jì)出來的相關(guān)軟件增加不一樣的效果,使得軟件更加生動(dòng)。本文在介紹了PowerBuilder的常用事件、常用函數(shù),并結(jié)合實(shí)例詳細(xì)的介紹了在PowerBuilder中實(shí)現(xiàn)動(dòng)畫效果的方法。
【參考文獻(xiàn)】
[1]陳永強(qiáng),李茜.SQL Server 2005+PowerBuilder11高級(jí)開發(fā)指南.清華大學(xué)出版社.
[2]樊金生,張翠肖.PowerBuilder 10.5實(shí)用教程.科學(xué)出版社.
[3]王羨欠,周燕玲.PowerBuilder 9與Flash的交互編程.計(jì)算機(jī)與現(xiàn)代化,2009.