第十一章表單設(shè)計(jì)和應(yīng)用_第1頁(yè)
第十一章表單設(shè)計(jì)和應(yīng)用_第2頁(yè)
第十一章表單設(shè)計(jì)和應(yīng)用_第3頁(yè)
第十一章表單設(shè)計(jì)和應(yīng)用_第4頁(yè)
第十一章表單設(shè)計(jì)和應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 院 系: 經(jīng)濟(jì)管理系 教研室: 信管 教 師: 數(shù)據(jù)庫(kù)原理及應(yīng)用課程教案課程名稱(chēng)數(shù)據(jù)庫(kù)原理及應(yīng)用課程學(xué)分3課程屬性必修課( ) 專(zhuān)業(yè)選修課( ) 校定公共選修課( )課程總學(xué)時(shí)48學(xué)時(shí)其中:講課:32學(xué)時(shí)實(shí)驗(yàn):16學(xué)時(shí)先修課程信息技術(shù)基礎(chǔ)授課專(zhuān)業(yè)、班級(jí)經(jīng)管系工商、信管、經(jīng)濟(jì)學(xué)、會(huì)計(jì)、工程造價(jià)各專(zhuān)業(yè)主要教材教材名稱(chēng)出版社作者出版時(shí)間Visual FoxPro 程序設(shè)計(jì)教程(第二版)北京郵電大學(xué)出版社劉衛(wèi)國(guó)2006教材名稱(chēng)出版社作者出版時(shí)間數(shù)據(jù)庫(kù)系統(tǒng)概論(第三版)高等教育出版社王珊,薩師煊2006教學(xué)目的及要求教學(xué)目標(biāo): 本章主要介紹表單的設(shè)計(jì)和應(yīng)用,把表單和程序設(shè)計(jì)結(jié)合起來(lái),為綜合性程序設(shè)計(jì)和

2、實(shí)驗(yàn)打下基礎(chǔ)。通過(guò)本章課程學(xué)習(xí)要求學(xué)生能夠達(dá)到以下目標(biāo):1. 掌握表單設(shè)計(jì)器的使用方法。2. 熟練掌握常用控件的屬性設(shè)置和事件程序的寫(xiě)法。3. 結(jié)合程序設(shè)計(jì)知識(shí),設(shè)計(jì)并開(kāi)發(fā)小程序?qū)嵗?.重點(diǎn)難點(diǎn): 本章的內(nèi)容直觀具體,其中表單設(shè)計(jì)器的使用和常用控件的屬性設(shè)置是重點(diǎn)部分,常用控件的事件程序的編寫(xiě)為難點(diǎn)部分。解決方法:首先通過(guò)一個(gè)綜合實(shí)例的演示,使學(xué)生對(duì)表單有直觀認(rèn)識(shí),同時(shí)掌握在程序中屬性和事件的概念,然后結(jié)合實(shí)例的具體程序要求,來(lái)分別介紹控件的使用方法,突出事件的編寫(xiě)方法,同時(shí)結(jié)合上一章程序設(shè)計(jì)的知識(shí),使學(xué)生前后呼應(yīng),掌握重點(diǎn)和難點(diǎn)部分。教學(xué)方法和手段:多媒體教學(xué)、實(shí)例演示、板書(shū)講授學(xué)時(shí):4學(xué)

3、時(shí)注:表中( )選項(xiàng)請(qǐng)打“”第十一章 表單設(shè)計(jì)與應(yīng)用教學(xué)目的與要求通過(guò)課程學(xué)習(xí),掌握表單設(shè)計(jì)器的使用方法,熟練掌握常用控件的屬性設(shè)置和事件程序的寫(xiě)法,結(jié)合程序設(shè)計(jì)知識(shí),設(shè)計(jì)并開(kāi)發(fā)小程序?qū)嵗?.教學(xué)內(nèi)容Visual FoxPro中表單的概念,Visual FoxPro中可視化程序設(shè)計(jì)的概念,Visual FoxPro的常用控件的使用方法。Visual FoxPro中控件對(duì)象的屬性和事件的概念和使用方法。教學(xué)重點(diǎn)與難點(diǎn)表單設(shè)計(jì)器的使用,常用控件的屬性設(shè)置和事件函數(shù)的編寫(xiě)。11.1 表單的建立與運(yùn)行11.1.1 用表單設(shè)計(jì)器建立表單1.表單設(shè)計(jì)器窗口可以用多種方法打開(kāi)表單設(shè)計(jì)器窗口:l 方法1:選

4、擇“文件”菜單中“新建”選項(xiàng),指定文件類(lèi)型為“表單”,然后單擊“新建文件”按鈕。l 方法2:在“項(xiàng)目管理器”中選擇“文檔”選項(xiàng)卡中的“表單”,然后單擊“新建”按鈕,并在打開(kāi)的“新建表單”對(duì)話框中選擇“新建表單”。l 方法3:在命令窗口輸入CREATE RORM命令。不管采用上面哪種方法,系統(tǒng)都將打開(kāi)表單設(shè)計(jì)器窗口。打開(kāi)表單設(shè)計(jì)器窗口后,Visral FoxPro主窗口上還將出現(xiàn)屬性設(shè)置窗口、表單控件工具欄、表單設(shè)計(jì)器工具欄以及“表單”菜單項(xiàng)。圖11-1 表單設(shè)計(jì)器窗口2.表單控件工具欄的初步認(rèn)識(shí)(1)怎樣在表單中加入一個(gè)對(duì)象在表單中加入對(duì)象的方法非常簡(jiǎn)單,只要首先將鼠標(biāo)在控件工具框移動(dòng)到所需要

5、的控件,并單擊鼠標(biāo)主按鈕,然后到表單的相應(yīng)位置拖放出一個(gè)圖形,就在表單中加入了一個(gè)繼承了所選控件的全部屬性和方法程序的對(duì)象。(2)怎樣選擇自己所需要的控件集如果所需要的控件不在當(dāng)前表單控件工具欄中,就要重新指定工具欄對(duì)應(yīng)“類(lèi)庫(kù)”文件,可以按下列步驟選定所需要的類(lèi)庫(kù)文件。用鼠標(biāo)指向表單控件工具欄中“查看類(lèi)”的命令按鈕,單擊鼠標(biāo)主按鈕,選擇“添加”,在“打開(kāi)”對(duì)話框中選擇所需要的類(lèi)文件。在上述第步中選擇“常用”可以恢復(fù)標(biāo)準(zhǔn)控件(基類(lèi))。(3)常用控件的初步認(rèn)識(shí)常用控件就是Visual FoxPro 為開(kāi)發(fā)者提供的基類(lèi),下面對(duì)這些控件進(jìn)行一些介紹,在11.3節(jié)中還會(huì)對(duì)此進(jìn)行進(jìn)一步討論:l 標(biāo)簽控件(

6、Label):不能綁定數(shù)據(jù),只能起提示作用。l 命令按鈕(Command Button):在應(yīng)用系統(tǒng)中,命令按鈕是交互的主要工具,人們通過(guò)按鈕向應(yīng)用系統(tǒng)發(fā)布操作命令,按鈕通過(guò)執(zhí)行其方法程序響應(yīng)人們的命令。l 命令組(CommandGroup):關(guān)于命令的容器, l 選項(xiàng)按鈕組(OptionGroup):選項(xiàng)按鈕即一般所稱(chēng)的單選按鈕,是構(gòu)成交互式界面的有力工具。l 文本框(TextBox):文本框是一種基本控件,它可以捆綁關(guān)系數(shù)據(jù)表的一個(gè)非備注型字段數(shù)據(jù),從而實(shí)現(xiàn)通過(guò)文本框?qū)ο髮?duì)數(shù)據(jù)表的字段增加和修改的目的。l 編輯框(EditBox):編輯框可以綁定一個(gè)關(guān)系表中的備注型字段數(shù)據(jù)。l 組合框(C

7、omboBox):組合框兼有列表框和文本框的功能。它有下拉組合框和下拉列表框兩種形式。組合框可以綁定數(shù)據(jù)表中的一個(gè)或多個(gè)字段。l 列表框(ListBox):與組合框類(lèi)似。l 復(fù)選框(CheckBox):復(fù)選框也是構(gòu)成交互式操作界面的有力工具。復(fù)選和選項(xiàng)按鈕的的差別是:服選按鈕可以兼選,而選項(xiàng)按鈕只能單選。l 微調(diào)按鈕(Spinner):用戶可以使用微調(diào)按鈕對(duì)對(duì)其所綁定的整數(shù)型字段數(shù)據(jù)進(jìn)行維護(hù)。l 表格(Grid):表單中一種功能強(qiáng)大的控件??梢越壎ㄖ付ǖ臄?shù)據(jù)表,從而實(shí)現(xiàn)通過(guò)表格對(duì)象對(duì)數(shù)據(jù)表的進(jìn)行維護(hù)的目的。l 計(jì)時(shí)器(Timer):可以定時(shí)執(zhí)行某種操作。l 頁(yè)框(Page Frame):是一個(gè)

8、容器控件,可以構(gòu)建含有“選項(xiàng)卡”的界面。3.表單中的對(duì)象設(shè)計(jì)(1)向表單中加入對(duì)象在表單中加入對(duì)象的工作包括兩個(gè)步驟:把對(duì)象的“父類(lèi)”加入到表單控件工具欄,如果對(duì)象的父類(lèi)已在當(dāng)前的表單工具欄中就省略這個(gè)步驟,這個(gè)步驟的操作過(guò)程已在前面講過(guò),此處從略。從表單控件工具欄中選定所需要的控件,并將其派生對(duì)象加入到表單中。加入表單后該對(duì)象將繼承所選擇控件的全部特征,名稱(chēng)以對(duì)象所屬的“基類(lèi)”(不是“父類(lèi)”)名加上數(shù)字編號(hào)組成,對(duì)象名稱(chēng)可以重新設(shè)定。這一部分工作也已經(jīng)講述過(guò),不再重復(fù)。(2)刪除表單中的對(duì)象 把鼠標(biāo)移到要?jiǎng)h除的對(duì)象上,單擊右鍵,選擇“剪切”,即可刪除這個(gè)對(duì)象。注意,如果是由一個(gè)容器控件(如自

9、定義的命令組子類(lèi))派生而成的一個(gè)容器對(duì)象,則不能刪除該容器對(duì)象中的某成員對(duì)象,只能刪除容器整體。(3)在表單中進(jìn)行對(duì)象屬性設(shè)定 將鼠標(biāo)移到要設(shè)置屬性的對(duì)象上,單擊右鍵,選擇“屬性”,就進(jìn)入屬性設(shè)置窗口。(4)為表單中的對(duì)象設(shè)計(jì)代碼 將鼠標(biāo)移到要添加代碼的對(duì)象上,單擊右鍵,選擇“代碼”,出現(xiàn)代碼設(shè)計(jì)窗口,選擇要設(shè)計(jì)代碼的事件,然后在代碼框中編寫(xiě)代碼。圖11-2 表單中對(duì)象的屬性設(shè)置4.表單設(shè)計(jì)的基本步驟表單設(shè)計(jì)可按以下步驟進(jìn)行:(1)進(jìn)行規(guī)劃,最好畫(huà)一張草圖,在上面標(biāo)出各對(duì)象的位置、標(biāo)題、所屬父類(lèi)、對(duì)象的大致作用、表單中要使用的表、表間的對(duì)應(yīng)關(guān)系以及對(duì)象間的相互協(xié)調(diào)與支持。(2)打開(kāi)表單設(shè)計(jì)器窗

10、口。(3)如果表單要使用到表,需要首先為表單建立“數(shù)據(jù)環(huán)境”。數(shù)據(jù)環(huán)境也是Visual FoxPro 中的一種對(duì)象(不可視)。建立數(shù)據(jù)環(huán)境的步驟是:將鼠標(biāo)移到表單的任一空白位置(不能指向任何對(duì)象),單擊右鍵,選擇“數(shù)據(jù)環(huán)境”。選擇與表單對(duì)應(yīng)的數(shù)據(jù)表,單擊“添加”按鈕,選中的數(shù)據(jù)表會(huì)加入到數(shù)據(jù)環(huán)境設(shè)計(jì)器中。如果要加入多個(gè)表,應(yīng)重復(fù)這一過(guò)程,然后單擊“關(guān)閉”按鈕退出數(shù)據(jù)表的加入操作。在數(shù)據(jù)環(huán)境設(shè)計(jì)器中建立表間的關(guān)聯(lián)關(guān)系。(4) 在表單中加入其他對(duì)象并進(jìn)行布局排列,一般表單的標(biāo)題要放在整個(gè)表單的上方,命令按鈕放在下面后右側(cè),文本框?qū)ο笠c其對(duì)應(yīng)的標(biāo)簽對(duì)象放在一起。布局的目的是為了美觀、清晰。表單中的

11、對(duì)象是可以用鼠標(biāo)直接拖動(dòng)的。 (5) 建立對(duì)象與表的對(duì)應(yīng)關(guān)系??梢耘c表字段進(jìn)行聯(lián)系的對(duì)象有:表格(Grid)、文本框(TextBox)、編輯框(EditBox)、列表框(ListBox)等等。建立這類(lèi)對(duì)象與數(shù)據(jù)表字段的關(guān)聯(lián)的方法是:文本框、編輯框、列表框 對(duì)于這些非容器類(lèi)的對(duì)象,設(shè)定其與數(shù)據(jù)表對(duì)應(yīng)字段的關(guān)聯(lián)時(shí),只需要將其ControlSource 屬性設(shè)置為數(shù)據(jù)表的對(duì)應(yīng)字段名即可。在表單中加入了數(shù)據(jù)環(huán)境對(duì)象后,這些字段的ControlSource 屬性對(duì)應(yīng)一個(gè)下拉列表框,從列表項(xiàng)選擇一個(gè)字段與對(duì)象關(guān)聯(lián)。表格 表格是一種容器對(duì)象,其成員對(duì)象是列,默認(rèn)的對(duì)象名是Column1、Column2 等,

12、而列也是一個(gè)容器對(duì)象,起成員對(duì)象是Header 和Text。11.1.2 用表單向?qū)Ы⒈韱?Visual FoxPro 中有兩個(gè)個(gè)表單向?qū)?,各種向?qū)⒌谋韱卧湍軌蛲瓿桑海?)表單向?qū)В赫麄€(gè)表單針對(duì)一個(gè)數(shù)據(jù)表進(jìn)行諸如查詢、修改、插入、刪除等操作;(2)一對(duì)多表單向?qū)В赫麄€(gè)表單針對(duì)兩個(gè)數(shù)據(jù)表,而且這兩個(gè)數(shù)據(jù)表間存在一對(duì)多的關(guān)系。11.1.3 表單的運(yùn)行有3種方法可以運(yùn)行表單:(1) 直接使用命令。在命令窗口,直接輸入命令:DO FORM <表單名> 如果表單沒(méi)有在當(dāng)前目錄中,并且沒(méi)有用SET PATH命令設(shè)定搜索路徑,則需要在表單名前冠上目錄路徑。(2) 在表單設(shè)計(jì)器窗口,選擇

13、“表單”菜單中的“運(yùn)行”命令,或直接單擊工具欄中的紅色驚嘆號(hào)。(3) 在項(xiàng)目管理器中,選中“文檔”選項(xiàng)卡并指定要運(yùn)行的表單,單擊“運(yùn)行”按鈕。11.2 表單的操作11.2.1 表單的屬性表單作為一個(gè)對(duì)象,當(dāng)然也和其他對(duì)象一樣具有屬性、可以識(shí)別的事件以及事件響應(yīng)程序??梢栽趯?shí)驗(yàn)中調(diào)整這些參數(shù)并觀察表單發(fā)生的變化,從而理解這些屬性的意義。11.2.2 表單的事件與方法表單可以響應(yīng)40多個(gè)事件和方法,下面對(duì)這幾個(gè)常用事件和方法做一些說(shuō)明:1.Init 事件:創(chuàng)建表單時(shí)觸發(fā)該事件,從而執(zhí)行為該事件編寫(xiě)的代碼。Init代碼通常用來(lái)完成一些關(guān)于表單的初始化工作。2.Destory事件:釋放表單時(shí)觸發(fā)該事件

14、,該方法代碼通常用來(lái)進(jìn)行文件關(guān)閉,釋放內(nèi)存變量等工作。3.Click事件:用氧標(biāo)單擊對(duì)象對(duì)觸發(fā)該事件,從而執(zhí)行為該事件編寫(xiě)的代碼。4.Show 和Hide 是一對(duì)方法,Show 使表單可見(jiàn),而Hide則是隱藏表單。注意,如果使用Show()格式調(diào)用該方法,則只是顯示一次表單,要希望表單顯示并停留在屏幕上,應(yīng)該使用Show(1)格式調(diào)用該方法。另外,Hide方法只是在屏幕上隱藏表單,并沒(méi)有從內(nèi)存中釋放表單,隱藏后的表單依然可以通過(guò)調(diào)用Show方法恢復(fù)顯示。5.Release 方法從內(nèi)存中釋放表單。注意Release 方法與 Destory 的區(qū)別,Destory 方法是由表單釋放事件而觸發(fā)的方法

15、,而 Release 方法則是主動(dòng)釋放表單,可以說(shuō) Release是 Destory 的觸發(fā)器,由于Release 方法的實(shí)行而導(dǎo)致表單的釋放,從而引發(fā)表單釋放事件,并因此觸發(fā)Destory 方法的運(yùn)行。6.Refresh 方法刷新表單數(shù)據(jù)。當(dāng)表單中各種對(duì)象所對(duì)應(yīng)的數(shù)據(jù)發(fā)生改變時(shí),有時(shí)并不自動(dòng)的反映在表單界面上,需要使用 Refresh 刷新,才能顯示最新數(shù)據(jù)。如用一個(gè)文本框關(guān)聯(lián)一個(gè)數(shù)據(jù)表字段,當(dāng)數(shù)據(jù)表記錄指針移動(dòng)后,新記錄對(duì)應(yīng)的數(shù)據(jù)需要刷新后才能更新。11.2.3 數(shù)據(jù)環(huán)境 每一個(gè)使用了數(shù)據(jù)表的表單都包括一個(gè)數(shù)據(jù)環(huán)境。數(shù)據(jù)環(huán)境是一個(gè)容器對(duì)象,它用來(lái)定義與表單相聯(lián)系的數(shù)據(jù)實(shí)體(表、視圖)的信息

16、及其相互聯(lián)系。數(shù)據(jù)環(huán)境容器一般包含一到多個(gè)Cursor類(lèi)對(duì)象,表單中所含Cursor類(lèi)對(duì)象的個(gè)數(shù)與表單關(guān)聯(lián)的數(shù)據(jù)實(shí)體(數(shù)據(jù)表、視圖)的個(gè)數(shù)相同,一個(gè)Cursor類(lèi)對(duì)象與一個(gè)數(shù)據(jù)實(shí)體(數(shù)據(jù)表、視圖)對(duì)應(yīng),如果一個(gè)表單關(guān)聯(lián)多個(gè)數(shù)據(jù)表,在數(shù)據(jù)環(huán)境容器中還有一個(gè)Relation類(lèi)對(duì)象描述這些表之間的關(guān)系,下面對(duì)數(shù)據(jù)環(huán)境容器及其可能包含的對(duì)象分別進(jìn)行說(shuō)明。1游標(biāo)(Cursor) 類(lèi)對(duì)象 當(dāng)存儲(chǔ)在磁盤(pán)上的一個(gè)數(shù)據(jù)表文件被打開(kāi)時(shí),系統(tǒng)會(huì)在內(nèi)存中建立一個(gè)該表的臨時(shí)文件,內(nèi)存中的臨時(shí)文件實(shí)際上是磁盤(pán)文件的一個(gè)映象,所有數(shù)據(jù)庫(kù)的操作修改命令都是針對(duì)這個(gè)映象進(jìn)行的,當(dāng)發(fā)布數(shù)據(jù)更新TableUpdate()命令或關(guān)閉

17、數(shù)據(jù)文件的命令后,系統(tǒng)再把這個(gè)映象文件存入磁盤(pán),從而完成對(duì)磁盤(pán)文件的修改。Cursor 類(lèi)對(duì)象也稱(chēng)為游標(biāo)對(duì)象,它用來(lái)定義臨時(shí)表的相關(guān)信息。2.關(guān)系(Relation) 類(lèi)對(duì)象 如果表單所關(guān)聯(lián)的數(shù)據(jù)表多于一個(gè),數(shù)據(jù)環(huán)境容器中有一個(gè)對(duì)象 Relation 用來(lái)定義這幾個(gè)表(視圖)間的關(guān)系。3.數(shù)據(jù)環(huán)境(DataEnvirinment)容器 數(shù)據(jù)環(huán)境是包括了Cursor和Relation 兩類(lèi)對(duì)象的一個(gè)容器,該容器和其所含對(duì)象一起定義了表單中的數(shù)據(jù)源。4.數(shù)據(jù)環(huán)境設(shè)計(jì)器 可以使用完全的編程方式建立數(shù)據(jù)環(huán)境,但大多數(shù)情況下都是用數(shù)據(jù)環(huán)境設(shè)計(jì)器來(lái)建立表單的數(shù)據(jù)環(huán)境。第一節(jié)已經(jīng)初步說(shuō)明了數(shù)據(jù)環(huán)境設(shè)計(jì)器的用

18、法,下面通過(guò)一個(gè)例子再做進(jìn)一步的說(shuō)明。例 建立一個(gè)學(xué)生選課表單。表單中有3個(gè)對(duì)象,標(biāo)簽對(duì)象顯示這個(gè)表單的標(biāo)題:“學(xué)生選課情況查詢”,左側(cè)的列表框?qū)ο笾袕摹皩W(xué)生”表中選擇學(xué)生的名字,右側(cè)的表格對(duì)象顯示被選中的學(xué)生的選課情況,當(dāng)重新選擇一個(gè)學(xué)生時(shí),表格中的數(shù)據(jù)會(huì)自動(dòng)變化。圖11-3 學(xué)生選課表單操作步驟如下:(1)打開(kāi)表單設(shè)計(jì)器窗口。 (2)為空白表單加入第一個(gè)對(duì)象:數(shù)據(jù)環(huán)境。在表單空白處,單擊鼠標(biāo)右鍵,選擇“數(shù)據(jù)環(huán)境”,出現(xiàn)一個(gè)數(shù)據(jù)環(huán)境設(shè)計(jì)器。在數(shù)據(jù)環(huán)境設(shè)計(jì)器中,單擊鼠標(biāo)右鍵,選擇“添加”(見(jiàn)圖11.16),首先選擇父表“學(xué)生”,單擊“添加”,然后選擇子表“選課”,單擊“添加”,單擊“關(guān)閉”,退

19、出數(shù)據(jù)表添加過(guò)程,按Ctrl+W,退出表單設(shè)計(jì)過(guò)程。數(shù)據(jù)環(huán)境設(shè)計(jì)器會(huì)自動(dòng)修改其Cursor和Relation屬性。(3)退出數(shù)據(jù)環(huán)境設(shè)置后,為表單加入一個(gè)文本框?qū)ο?、一個(gè)列表框?qū)ο蟆⒁粋€(gè)表格對(duì)象,并用鼠標(biāo)對(duì)3個(gè)對(duì)象進(jìn)行大致布局。圖11.4 數(shù)據(jù)環(huán)境設(shè)計(jì)器(4)使用生成器設(shè)置列表框和表格對(duì)象的屬性,前面已經(jīng)說(shuō)明過(guò)表格生成器的用法,下面只簡(jiǎn)要說(shuō)明一下列表框生成器的用法。 把鼠標(biāo)移到列表框?qū)ο笊?,單擊右鍵,選擇“生成器”,在生成器中選擇對(duì)象所關(guān)聯(lián)的字段,然后單擊“確定”。(5)直接修改標(biāo)簽對(duì)象的Caption屬性:“學(xué)生選課情況查詢”,F(xiàn)ontSize:22,F(xiàn)oreColor:0,0,255。 本

20、例中數(shù)據(jù)環(huán)境對(duì)象、列表框?qū)ο蠹氨砀駥?duì)象的屬性都是借助于生成器這種輔助工具完成的,實(shí)際開(kāi)發(fā)過(guò)程中,設(shè)計(jì)人員也往往是盡量采用生成器,只有生成器不能實(shí)現(xiàn)的功能才手工設(shè)置,這樣能有效地減少錯(cuò)誤,提高工作效率。11.2.4 表單對(duì)象的布局 前面已經(jīng)討論了為表單加入對(duì)象、在表單中刪除對(duì)象、為對(duì)象加入事件與方法代碼以及對(duì)象屬性的設(shè)置等表單對(duì)象的操作問(wèn)題。表單設(shè)計(jì)中還有一個(gè)問(wèn)題就是表單對(duì)象的布局:包括對(duì)象的大小、對(duì)象的位置設(shè)計(jì)。Visual FoxPro 還提供了一個(gè)“表單布局工具欄”(可以在Visual FoxPro 菜單欄中,選擇“顯示”中的“工具欄”再選擇“布局”調(diào)出)。選定表單中的某個(gè)對(duì)象后(即用鼠標(biāo)

21、單擊某個(gè)對(duì)象,被選中的對(duì)象邊框和其他對(duì)象不同),可以使用布局工具欄中的相應(yīng)按鈕讓其“水平居中”、“垂直居中”等操作;當(dāng)同時(shí)選擇一個(gè)以上的對(duì)象時(shí)(選中一個(gè)對(duì)象后,把鼠標(biāo)移到其他對(duì)象,并按住Shift鍵并單擊某個(gè)對(duì)象)也可進(jìn)行同樣的操作。還可以使用表單布局工具欄使所有被選中的對(duì)象執(zhí)行“左對(duì)齊”、“右對(duì)齊”、“頂邊對(duì)齊”、“底邊對(duì)齊”、“相同高度”、“相同寬度”、“相同大小”等操作。當(dāng)鼠標(biāo)移到工具欄中的某個(gè)圖標(biāo)上時(shí),會(huì)出現(xiàn)圖標(biāo)的名字,單擊鼠標(biāo)主按鈕,就會(huì)對(duì)選定對(duì)象執(zhí)行某個(gè)操作,自行逐個(gè)實(shí)驗(yàn)一次,以掌握該工具的用法。11.3 常用表單控件11.3.1 命令按鈕控件命令按鈕是最簡(jiǎn)單最常見(jiàn)的一種控件,由其

22、派生的命令按鈕對(duì)象在表單中隨處可見(jiàn)。11.3.2 命令按鈕組控件 可以將命令按鈕組成一組,對(duì)組中的按鈕即可單獨(dú)操作,也可作為一個(gè)組來(lái)統(tǒng)一操作。設(shè)計(jì)者可以為組中的每個(gè)按鈕單獨(dú)設(shè)計(jì)事件代碼,也可以為整個(gè)按鈕組設(shè)計(jì)一個(gè)事件代碼,當(dāng)一個(gè)事件(如Click)在組中的某個(gè)按鈕上發(fā)生時(shí),命令按鈕組的 Value 屬性指明該事件發(fā)生在哪個(gè)按鈕。11.3.3 文本框控件 文本框是用來(lái)在應(yīng)用系統(tǒng)與用戶之間進(jìn)行數(shù)據(jù)交互的一種常用工具,它允許用戶添加或編輯保存在表中非備注字段中的數(shù)據(jù)。11.3.4 編輯框控件編輯框也是用來(lái)輸入用戶的數(shù)據(jù)的。在編輯框中允許用戶編輯長(zhǎng)字段或備注字段文本,允許自動(dòng)換行并能用方向鍵、Page

23、Up 和 PageDown 鍵以及滾動(dòng)條來(lái)瀏覽文本。11.3.5 復(fù)選框控件 復(fù)選框可以用來(lái)表示某些狀態(tài)是否成立,其值是一個(gè)邏輯量。復(fù)選框也是一種經(jīng)常使用的控件。11.3.6 組合框控件組合框兼有列表框和文本框的功能。有兩種形式的組合框,即下拉組合框和下拉列表框,通過(guò)更改控件的 Style 屬性可選擇想要的形式。11.3.7 單選按鈕控件 單選按鈕組是包含單選按鈕的容器。通常,單選按鈕允組用來(lái)由用戶指定對(duì)話框中幾個(gè)操作選項(xiàng)中的一個(gè)。11.3.8 微調(diào)控件 使用微調(diào)控件可以讓用戶通過(guò)“微調(diào)”尖頭來(lái)選擇所需要的數(shù)據(jù),直接在微調(diào)框中直接鍵入所需要的數(shù)據(jù)11.3.9 標(biāo)簽控件 標(biāo)簽通常被用做提示或標(biāo)題

24、。標(biāo)簽和文本框的不同之處在于標(biāo)簽沒(méi)有數(shù)據(jù)源,不能編輯,運(yùn)行時(shí)不能被選中。 在程序中可以改變標(biāo)簽的 Caption 和 Visible 屬性,使標(biāo)簽根據(jù)不同的狀態(tài)顯示不同的內(nèi)容。11.3.10 列表框控件 列表框和下拉列表框(即 Style 屬性為 2 的組合框控件 下拉列表)為用戶提供了包含一些選項(xiàng)和信息的可滾動(dòng)列表。列表框中,任何時(shí)候都能看到多個(gè)項(xiàng);而在下拉列表中,只能看到一個(gè)項(xiàng),用戶可單擊向下按鈕來(lái)顯示可滾動(dòng)的下拉列表框。11.3.11 表格控件 在前面已經(jīng)說(shuō)明過(guò),表格是一種容器對(duì)象,它包含了若干個(gè)列,而列由包含標(biāo)頭和文本。 表格對(duì)象能在表單或頁(yè)面中顯示并操作(編輯修改)表格中行和列中的數(shù)

25、據(jù)。設(shè)計(jì)者常使用表格對(duì)象來(lái)創(chuàng)建一對(duì)多表單,例如學(xué)生選課情況查詢表單。11.3.12 計(jì)時(shí)器控件 計(jì)時(shí)器控件與用戶的操作獨(dú)立。它只對(duì)時(shí)間作出反應(yīng),以一定的間隔重復(fù)地執(zhí)行某種操作。注意,計(jì)時(shí)器的 Enabled 屬性和其他對(duì)象的 Enabled 屬性不同。對(duì)大多數(shù)對(duì)象來(lái)說(shuō),Enabled 屬性決定對(duì)象是否能對(duì)用戶引起的事件作出反應(yīng)。對(duì)計(jì)時(shí)器控件來(lái)說(shuō),將 Enabled 屬性設(shè)置為“假”(.F.),會(huì)掛起計(jì)時(shí)器的運(yùn)行。 計(jì)時(shí)器的事件與響應(yīng): 當(dāng)一個(gè)計(jì)時(shí)器的時(shí)間間隔(由Interval屬性值規(guī)定)過(guò)去后,Visual FoxPro 將產(chǎn)生一個(gè) Timer 事件。 例 設(shè)計(jì)一個(gè)電子鐘,要求不直接使用TI

26、ME()函數(shù)。 一個(gè)電子鐘至少需要兩個(gè)對(duì)象,一個(gè)時(shí)鐘信號(hào)發(fā)生器和一個(gè)顯示器,可以使用一個(gè)文本框作為顯示器,而用計(jì)時(shí)器作為時(shí)鐘信號(hào)發(fā)生器。設(shè)計(jì)步驟如下:1.建立一個(gè)新表單,并在表單中加入一個(gè)文本框?qū)ο蠛鸵粋€(gè)計(jì)時(shí)器對(duì)象。2.在表單的Load事件代碼中加入一個(gè)語(yǔ)句:PUBLIC rh,rm,rs && 分別存放時(shí)間的時(shí)、分、秒值3.將文本框的FontSize 屬性設(shè)置為 18,并在其Init事件代碼中加入一個(gè)語(yǔ)句:This.Value=time() && 文本框建立時(shí)初始化為系統(tǒng)時(shí)間4.將計(jì)時(shí)器的Interval 屬性設(shè)置為1000,并為其設(shè)計(jì)Timer事件代碼。代碼

27、如下:rt=ThisForm.Text1.Value && 從文本框中獲取當(dāng)前時(shí)間rh=VAL(SUBSTR(rt,1,2) && 將時(shí)間進(jìn)行時(shí)分秒分解并轉(zhuǎn)化為數(shù)值型數(shù)據(jù)rm=VAL(SUBSTR(rt,4,2)rs=VAL(SUBSTR(rt,7,2)DO CASE CASE rs<60 && 秒數(shù)小于60,時(shí)分?jǐn)?shù)值不變,直接對(duì)秒加1 rs=rs+1 CASE rm<60 && 分指示要改變 rm=rm+1 rs=0 CASE rh<24 && 時(shí)指示要改變 rh=rh+1 rm=0rs=0OT

28、HERWISE rh=0 rm=0 rs=0ENDCASErh1=str(rh,2) && 將數(shù)值轉(zhuǎn)化為字符,并注意在一位數(shù)前補(bǔ)0IF SUBSTR(rh1,1,1)= THEN rh1=0+SUBSTR(rh1,2,1)ENDIFrm1=str(rm,2)IF SUBSTR(rm1,1,1)= THEN rm1=0+SUBSTR(rm1,2,1)ENDIFrs1=str(rs,2)IF SUBSTR(rs1,1,1)= THEN rs1=0+SUBSTR(rs1,2,1)ENDIFThisForm.Text1.Value=rh1+:+rm1+:+rs1ThisForm.Ref

29、reshRETURN圖11-5 時(shí)鐘程序的運(yùn)行11.3.13 頁(yè)框控件 頁(yè)框是“頁(yè)面”的一種容器,而“頁(yè)面”也是一種容器,可以放置任何控件、容器和自定義對(duì)象,一個(gè)頁(yè)面在運(yùn)行時(shí)對(duì)應(yīng)一個(gè)屏幕窗口。表單的一個(gè)窗口幅面有限,如果在一個(gè)應(yīng)用中要涉及到的對(duì)象很多,在一個(gè)窗口不好布局時(shí),可以把整個(gè)表單中的對(duì)象按聯(lián)系的緊密程度進(jìn)一步劃分為小的模塊,把一個(gè)模塊中的對(duì)象在一個(gè)頁(yè)面中進(jìn)行布局,這樣,整個(gè)窗口就顯得簡(jiǎn)要、清晰,也不至于因?yàn)橐粋€(gè)窗口放置的對(duì)象太多而弄得眼花繚亂,找不到所需要的信息。頁(yè)框就正是為了這樣的目的而設(shè)計(jì)的一種容器類(lèi),是Visual FoxPro 的一個(gè)基類(lèi)。頁(yè)框建立在表單上,頁(yè)面建立在頁(yè)框上,經(jīng)

30、過(guò)頁(yè)框的處理后,一個(gè)表單中的全部對(duì)象就分布到了多個(gè)窗口。11.4 表單的應(yīng)用11.4.1 系統(tǒng)登錄表單 每個(gè)應(yīng)用系統(tǒng)都有自己的用戶群,在進(jìn)入一個(gè)應(yīng)用系統(tǒng)前,常有一個(gè)登錄過(guò)程,目的就是驗(yàn)明使用者的身份,防止未授權(quán)用戶進(jìn)入系統(tǒng),從而保證系統(tǒng)安全。在登錄界面的文本框輸入登錄者姓名,下面的文本框輸入編號(hào),為保密,這里輸入的字符均顯示為星號(hào)(*)。圖11-6 登陸表單示例1.與登錄過(guò)程相關(guān)的數(shù)據(jù)表 登錄過(guò)程實(shí)際上是對(duì)用戶所輸入的信息進(jìn)行驗(yàn)證的過(guò)程,驗(yàn)證方法一般是在一個(gè)用戶信息數(shù)據(jù)表中檢索用戶輸入的數(shù)據(jù),若檢索到,則容許用戶登錄,否則,拒絕用戶登錄。為減少數(shù)據(jù)的描述過(guò)程,這里借用前面多次應(yīng)用的“教師”表進(jìn)行登錄檢查,以教師

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論