在VFP程序中創(chuàng)建工具條

字號:

大家對工具條(TOOLBAR)肯定不會陌生,利用工具條,可以使我們的操作更加方便。如圖所示的程序中便使用了工具條,我們可以在程序運行時將工具條放置在任意地方,并且可以調(diào)整工具條的大小、改變按鈕的排列方式(橫向、縱向)。那么,在VFP中怎樣才能創(chuàng)建工具條呢?在VFP的表單設(shè)計環(huán)境中并沒有工具條控件,要使用工具條,你得自力更生!
    首先得新建一工具條類(CLASS):在新建文件的文件類型中選擇CLASS,之后輸入你新建的類名、存儲該類信息的文件名(本例中為mytoolbar.vcx),最重要的是你應(yīng)選擇“TOOLBAR”作為該類的基類。然后便進(jìn)入類設(shè)計器環(huán)境,同表單設(shè)計環(huán)境一樣,你可以在工具條中加入各種常用控件。本文主要是利用工具條來實現(xiàn)移動數(shù)據(jù)表的指針,所以只在工具條中加入了四個按鈕:head、previous、next、end。它們的標(biāo)題分別為“文件頭”、“上一條”、“下一條”、“文件尾”。當(dāng)然,你如果想要你的工具條看起來更加漂亮,還可以把按鈕設(shè)計成圖案式。然后我們在類設(shè)計器中為每個按鈕編寫出相應(yīng)的代碼。
    1.Head按鈕的CLICK事件代碼:
    GO
    *移動數(shù)據(jù)表的指針時,你必須考慮到更新表單(集)上的內(nèi)容
    *按鈕的“父親”工具條本身,工具條的“父親”便是引用工具條的表單集了。
    THIS.PARENT.PARENT.REFRESH
    2.Previous按鈕的CLICK事件代碼:
    IF BOF()
     WAIT WIND ″已到第一條記錄!″
     RETURN
    ELSE
     SKIP -1
    ENDI
    THIS.PARENT.PARENT.REFRESH
    3.Next按鈕的CLICK事件代碼:
    IF EOF()
     WAIT WIND ″已到最未一條記錄!″
     RETURN
    ELSE
     SKIP
    ENDI
    THIS.PARENT.PARENT.REFRESH
    4.End按鈕的CLICK事件代碼:
    GO BOTTOM
    THIS.PARENT.PARENT.REFRESH
    經(jīng)過上面的過程后,我們的工具條便做好了。接下來在VFP中新建一表單form1,在數(shù)據(jù)環(huán)境中加入一數(shù)據(jù)表txl.dbf(有三個字段:姓名、地址、電話),將數(shù)據(jù)環(huán)境中的字段拖入表單,這樣便能夠查看數(shù)據(jù)表了。在表單控件工具欄中選擇“添加”控件,系統(tǒng)會詢問你可視類庫的文件名(本文指mytoolbar.vcx)。之后,表單控件工具欄的布局會發(fā)生變化,你能夠看到剛才你設(shè)計的工具條控件出現(xiàn)在上面?,F(xiàn)在你可以將工具條控件拖入表單了。在往表單中加入工具條之前,我們首先應(yīng)該知道,其實工具條的本質(zhì)是一表單(form),所以,在往form1中添加工具條控件時,系統(tǒng)會詢問你是否新增一表單集(formset),選擇“是”,你的程序就算完工了。試試吧,你會覺得一切都來得太容易。事實上,在類設(shè)計器中為每個控件所寫的代碼為你省去了好多功夫,并且你可以在任何表單中使用該工具條控件。由此你可以感受到“類”的優(yōu)點了。
    另外需要注意的是,在表單中加入工具條往往是和菜單內(nèi)容相對應(yīng)的,一個表單在一般情況下不可能僅僅有一個工具條,就拿本文所舉的例子來說,如果用戶將工具條給關(guān)閉了,那么用戶要想繼續(xù)查看數(shù)據(jù)表,那就只得望表興嘆了。如果只想用工具條而不使用菜單選項,你就得將工具條的ControlBox屬性設(shè)為.F.,即不允許用戶關(guān)閉工具條。
    由于篇幅有限,本文沒有對如何完善工具條多談,其實,只要你掌握了工具條的設(shè)計原理,對工具條作一些完善應(yīng)該不難!