vf第六章表單設(shè)計(jì)與應(yīng)用.ppt_第1頁
vf第六章表單設(shè)計(jì)與應(yīng)用.ppt_第2頁
vf第六章表單設(shè)計(jì)與應(yīng)用.ppt_第3頁
vf第六章表單設(shè)計(jì)與應(yīng)用.ppt_第4頁
vf第六章表單設(shè)計(jì)與應(yīng)用.ppt_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第六章表單設(shè)計(jì)與應(yīng)用,表單(Form)是VFP提供的用于建立應(yīng)用程序界面的最主要的工具之一。表單內(nèi)可以包含命令按鈕、文本框、列表框等各種界面元素,產(chǎn)生標(biāo)準(zhǔn)的窗口或?qū)υ捒?。本章首先簡單介紹面向?qū)ο蟮娜舾苫靖拍罴癡FP中的基類,然后介紹表單的創(chuàng)建與管理,表單設(shè)計(jì)器環(huán)境以及在該環(huán)境下的一些操作,如控件的添加、刪除、布局,表單數(shù)據(jù)環(huán)境的設(shè)計(jì),最后介紹一些常用的表單控件。,61面向?qū)ο蟮母拍?611對(duì)象與類 對(duì)象與類是面向?qū)ο蠓椒ǖ膬蓚€(gè)最基本的概念。 1對(duì)象(Object) 客觀世界里的任何實(shí)體都可以被看作是對(duì)象。對(duì)象可以是具體的物,也可以指某些概念。 例如,一部電話機(jī)、一名學(xué)生、一臺(tái)計(jì)算機(jī)、一個(gè)表單

2、、一個(gè)命令按鈕都可作為對(duì)象。每個(gè)對(duì)象都有一定的狀態(tài),如一部電話的顏色是“紅”色的,一名學(xué)生的姓名是“黎明”。每個(gè)對(duì)象也有自己的行為,如電話接通時(shí)會(huì)響鈴,學(xué)生到期末時(shí)要參加考試。,使用面向?qū)ο蟮姆椒ń鉀Q問題的首要任務(wù),就是要從客觀世界里識(shí)別出相應(yīng)的對(duì)象,并抽象出為解決問題所需要的對(duì)象屬性和對(duì)象方法。屬性用來表示對(duì)象的狀態(tài),方法用來描述對(duì)象的行為。在面向?qū)ο蟮姆椒ɡ?,?duì)象被定義為由屬性和相關(guān)方法組成的包。 方法是描述對(duì)象行為的過程,是對(duì)當(dāng)某個(gè)對(duì)象接受了某個(gè)消息(一般也將其稱為調(diào)用對(duì)象的某個(gè)方法)后所采取的一系列操作的描述。方法與普通的VFP過程不同,方法與對(duì)象緊密聯(lián)系。,2類(Class),類和對(duì)

3、象關(guān)系密切,但并不相同。類是對(duì)一類相似對(duì)象的性質(zhì)描述,這些對(duì)象具有相同的性質(zhì):相同種類的屬性以及方法。類好比是一類對(duì)象的模板,有了類定義后,基于類就可以生成這類對(duì)象中任何一個(gè)對(duì)象。 例如,可以為學(xué)生創(chuàng)建一個(gè)類。在“學(xué)生”類的定義中,需要描述的屬性可能包括“學(xué)號(hào)”、“姓名”、“性別”、“出生日期”等,需要描述的方法可能有“注冊”、“考試”、“畢業(yè)”等?;凇皩W(xué)生”類,我們可以生成任何一個(gè)學(xué)生對(duì)象。對(duì)生成的每個(gè)學(xué)生對(duì)象,都可以為其設(shè)置相應(yīng)的屬性值。,在類的定義中,也可以為某個(gè)屬性指定一個(gè)值,這個(gè)值將作為基于該類生成的每個(gè)對(duì)象在該屬性上的默認(rèn)值。 通常,我們把基于某個(gè)類生成的對(duì)象稱為這個(gè)類的實(shí)例???/p>

4、以說,任何一個(gè)對(duì)象都是某個(gè)類的一個(gè)實(shí)例。 需要注意的是,方法盡管定義在類中,但執(zhí)行方法的主體是對(duì)象。同一個(gè)方法,如果由不同的對(duì)象去執(zhí)行,一般會(huì)產(chǎn)生不同的結(jié)果。,612子類與繼承,繼承表達(dá)了一種從一般到特殊的進(jìn)化過程。例如,如果了解了飛機(jī)的一般原理,那么對(duì)認(rèn)識(shí)客機(jī)就有了一個(gè)很好的基礎(chǔ)。這里,飛機(jī)和客機(jī)就是一個(gè)一般和特殊的關(guān)系。 在面向?qū)ο蟮姆椒ɡ铮^承是指在基于現(xiàn)有的類創(chuàng)建新類時(shí),新類繼承了現(xiàn)有類里的方法和屬性。之外,可以為新類添加新的方法和屬性。,一個(gè)子類的成員一般包括: 從其父類繼承的成員,包括屬性、方法。 由子類自己定義的成員,包括屬性、方法。 繼承可以使在一個(gè)父類所作的改動(dòng)自動(dòng)反映到它的

5、所有子類上。這種自動(dòng)更新節(jié)省了用戶的時(shí)間和精力。例如,當(dāng)為父類添加一個(gè)屬性時(shí),它的所有子類也將同時(shí)具有該屬性。同樣,當(dāng)修復(fù)了父類中的一個(gè)缺陷時(shí),這個(gè)修復(fù)也將自動(dòng)體現(xiàn)在它的全部子類中。,62 VFP基類簡介,在VFP環(huán)境下,要進(jìn)行面向?qū)ο蟮某绦蛟O(shè)計(jì)或創(chuàng)建應(yīng)用程序,必然要用到VFP系統(tǒng)提供的基礎(chǔ)類,即基類。 621 VFP基類 VFP基類是系統(tǒng)本身內(nèi)含的、并不存放在某個(gè)類庫中。用戶可以基于基類生成所需要的對(duì)象,也可以擴(kuò)展基類創(chuàng)建自己的類。(見書p192) 每個(gè)VFP基類都有自己的一套屬性、方法和事件。當(dāng)擴(kuò)展某個(gè)基類創(chuàng)建用戶自定義類時(shí),該基類就是用戶自定義類的父類,用戶自定義類繼承該基類中的屬性、方

6、法和事件。 對(duì)象屬性訪問以及對(duì)象方法調(diào)用的基本格式如下: 對(duì)象引用對(duì)象屬性 對(duì)象引用對(duì)象方法(),622容器與控件,VFP中的類一般可分為兩種類型:容器類和控件類。相應(yīng)地,可分別生成容器(對(duì)象)和控件(對(duì)象)。 控件是一個(gè)可以以圖形化的方式顯示出來并能與用戶進(jìn)行交互的對(duì)象,例如一個(gè)命令按鈕、一個(gè)文本框等??丶ǔ1环胖迷谝粋€(gè)容器里。容器可以被認(rèn)為是一種特殊的控件,它能包容其他的控件或容器,例如一個(gè)表單、一個(gè)表格等。這里把容器對(duì)象稱為那些被包容對(duì)象的父對(duì)象。見書p192表63列出了VFP中常用的容器及其所能包容的對(duì)象。,我們知道,在文件系統(tǒng)的層次目錄結(jié)構(gòu)中,要找一個(gè)文件,單用文件名往往是不夠的,

7、一般還要指明文件的位置,即目錄路徑。類似的,在對(duì)象的嵌套層次關(guān)系中,要引用其中的某個(gè)對(duì)象,也需要指明對(duì)象在嵌套層次中位置。這時(shí),經(jīng)常要用到(p194)表64所列的幾個(gè)屬性或關(guān)鍵字。 這里,Parent是對(duì)象的一個(gè)屬性,屬性值為對(duì)象引用,指向該對(duì)象的直接容器對(duì)象。而This、ThisForm和ThisFormSet是三個(gè)關(guān)鍵字,它們分別表示當(dāng)前對(duì)象、當(dāng)前表單和當(dāng)前表單集。這三個(gè)關(guān)鍵字只能使用在方法代碼或事件代碼中。,623事件,事件是一種由系統(tǒng)預(yù)先定義而由用戶或系統(tǒng)發(fā)出的動(dòng)作。事件作用于對(duì)象,對(duì)象識(shí)別事件并作出相應(yīng)反應(yīng)。事件可以由系統(tǒng)引發(fā),比如生成對(duì)象時(shí),系統(tǒng)就弓發(fā)一個(gè)Init事件,對(duì)象識(shí)別該事

8、件,并執(zhí)行相應(yīng)的Init事件代碼。事件也可以由用戶引發(fā),比如用戶用鼠標(biāo)單擊程序界面上的一個(gè)命令按鈕就引發(fā)了一個(gè)C1ick事件,命令按鈕識(shí)別該事件并執(zhí)行相應(yīng)的C1ick事件代碼。,與方法集可以無限擴(kuò)展不同,事件集是固定的。用戶不能定義新的事件。書上(P 195)表66列出了VFP基類的最小事件集,不管哪個(gè)基類都包含這些事件。,63創(chuàng)建與管理表單,631創(chuàng)建表單 創(chuàng)建表單一般有兩種途徑: 使用表單向?qū)?chuàng)建即用表單。 使用表單設(shè)計(jì)器創(chuàng)建、設(shè)計(jì)新的表單或修改已有的表單。 1使用表單向?qū)?chuàng)建表單,2使用表單設(shè)計(jì)器創(chuàng)建表單 可以使用下面三種方法中的任何一種調(diào)用表單設(shè)計(jì)器: 方法1:在項(xiàng)目管理器環(huán)境下調(diào)用

9、方法2:菜單方式調(diào)用 方法3:命令方式調(diào)用 在命令窗口輸入CREATE FORM命令。 3. 保存設(shè)計(jì)好的表單 表單文件的擴(kuò)展名是.scx 4.修改已有的表單 一個(gè)表單無論是通過何種途徑創(chuàng)建的,都可以使用表單設(shè)計(jì)器進(jìn)行編輯修改。 命令窗口輸入命令MODI FORM表單文件名,4運(yùn)行表單 可以采用下列方法運(yùn)行通過表單設(shè)計(jì)器創(chuàng)建的表單文件: 在項(xiàng)目管理器窗口中,選擇要運(yùn)行的表單,然后單擊窗口里的“運(yùn)行”按鈕。 在表單設(shè)計(jì)器環(huán)境下,選擇“表單”菜單中的“執(zhí)行表單”命令,或單擊標(biāo)準(zhǔn)工具欄上 的“運(yùn)行”按鈕。 選擇“程序”菜單中的“運(yùn)行”命令,打開“運(yùn)行”對(duì)話框,然后在對(duì)話框中指定要運(yùn)行 的表單文件并單

10、擊“運(yùn)行”按鈕。,在命令窗口輸入命令: DO FORM 表單文件名 NAME變量名 WITH實(shí)參1,實(shí)參2LIKEDNOSHOW 所謂運(yùn)行表單就是根據(jù)表單文件及表單備注文件的內(nèi)容產(chǎn)生表單對(duì)象。 如果包含NAME子句,系統(tǒng)將建立指定名字的變量,并使它指向表單對(duì)象;否則,系統(tǒng)建立與表單文件同名的變量指向表單對(duì)象。 如果包含WITH子句,那么在表單運(yùn)行引發(fā)Init事件時(shí),系統(tǒng)會(huì)將各實(shí)參的值傳遞給該事件代碼PARA或LPARAMTERS子句中的各形參。,632管理表單屬性和方法,可以根據(jù)需要向表單添加任意數(shù)量的新屬性和新方法,并像引用表單的其他屬性和方法那樣引用它們。 1常用的表單屆性 表單屬性大約有

11、100個(gè),但絕大多數(shù)很少用到。表67列出了常用的一些表單屬性,這些屬性規(guī)定了表單的外觀和行為,經(jīng)常在設(shè)計(jì)階段進(jìn)行設(shè)計(jì)。,2創(chuàng)建新屬性(或“創(chuàng)建新方法”) 向表單添加新屬性的步驟如下: 選擇“表單”菜單中的“新建屬性”命令,打開“新建屬性”對(duì)話框。 在“名稱”框中輸入屬性名稱。新建的屬性同樣會(huì)在“屬性”窗口的列表框中顯示出來。 有選擇地在“說明”框中輸入新建屬性的說明信息。這些信息將顯示在“屬性”窗口的底部。 3編輯方法或事件代碼 “表單”-“編輯屬性與方法程序,633常用事件與方法,下面介紹表單以及控件常用的一些事件和方法: 1Init事件 在對(duì)象建立時(shí)引發(fā)。在表單對(duì)象的Init事件引發(fā)之前,

12、將先引發(fā)它所包含的控件對(duì)象的Init事件,所以在表單對(duì)象的Init事件代碼中能夠訪問它所包含的所有控件對(duì)象。 2Destroy事件 在對(duì)象釋放時(shí)引發(fā)。表單對(duì)象的Destroy事件在它所包含的控件對(duì)象的Destroy事件引發(fā)之前引發(fā),所以在表單對(duì)象的Destroy事件代碼中能夠訪問它所包含的所有控件對(duì)象。,3Error事件 當(dāng)對(duì)象方法或事件代碼在運(yùn)行過程中產(chǎn)生錯(cuò)誤時(shí)引發(fā)。事件引發(fā)時(shí),系統(tǒng)會(huì)把發(fā)生的錯(cuò)誤類型和錯(cuò)誤發(fā)生的位置等參數(shù)傳遞給事件代碼,事件代碼可以據(jù)此對(duì)錯(cuò)誤進(jìn)行相應(yīng)的處理。 4Load事件 在表單對(duì)象建立之前引發(fā),即運(yùn)行表單時(shí),先引發(fā)表單的Load事件,再引發(fā)表單的Init事件。 5Unload事件 在表單對(duì)象釋放時(shí)引發(fā),是表單對(duì)象釋放時(shí)最后一個(gè)要引發(fā)的事件。比如在關(guān)閉包含一個(gè)命令按鈕的表單時(shí),先引發(fā)表單的Destroy事件,然后引發(fā)命令按鈕的Destroy事件,最后引發(fā)表單的Unload事件。,6GotFOCUS事件 當(dāng)對(duì)象獲得焦點(diǎn)時(shí)引發(fā)。對(duì)象可能會(huì)由于用戶的動(dòng)作(如鼠標(biāo)單擊)或代碼中調(diào)用SetFoCus方法而獲得焦點(diǎn)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論