VFP第8章表單設計與面向對象程序設計基礎.ppt_第1頁
VFP第8章表單設計與面向對象程序設計基礎.ppt_第2頁
VFP第8章表單設計與面向對象程序設計基礎.ppt_第3頁
VFP第8章表單設計與面向對象程序設計基礎.ppt_第4頁
VFP第8章表單設計與面向對象程序設計基礎.ppt_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Visual FoxPro,1,第八章,面向對象程序設計基礎,表單設計與,Visual FoxPro,2,1、表單設計基礎,1.1 表單與表單向導 表單(Form)在VFP中體現為一個窗口,是面向對象程序設計中的一種容器,其中可以加入很多其他對象。 打開向導選取對話框: 在工具菜單的向導子菜單中選定表單命令,Visual FoxPro,3,單表表單向導與一對多表單向導,Visual FoxPro,4,創(chuàng)建和運行表單的基本步驟 打開表單設計器 MODIFY FORM 文件名 對象操作與編碼:表單設計器 ,數據環(huán)境設計器 ,表單控件工具欄 保存表單 運行表單:例如 DO FORM XSB (建立表

2、單xsb.scx) 快速創(chuàng)建表單:表單菜單的快速表單命令,1.2 表單設計器,Visual FoxPro,5,表單中經常包含許多控件。通過VFP的表單控件工具欄可創(chuàng)建的控件大致可分為5類。 (1)輸出類:標簽、圖象、線條、形狀; (2)輸入類:文本框、編輯框、微調控件、列表框、組合框; (3)控制類:命令按鈕、命令按鈕組、復選框、選項按鈕組、計時器; (4)容器類:表格、頁框、Container容器; (5)連接類:ActiveX控件、ActiveX綁定控件、超級鏈接,1.3 在表單上設置控件,Visual FoxPro,6,Visual FoxPro,7,2、面向對象程序設計基礎,2.1面向

3、對象的概念,在面向對象程序設計(Object Oriented Programming,簡稱為OOP)中,對象(Object)是組成程序的基本構件,在這種方法中,用一種稱之為“對象”的程序構件來描述客觀問題中“實體”,用“類”來模擬這些實體間的共性。 對象是現實世界中實體的一種模擬工具,對象具有自己的特征和行為,對象的特征由它的各種屬性來描述,對象的行為則由它的事件和方法程序來表示。 屬性用來表示對象的特征,一個對象可以有多種屬性,如按鈕的名稱、位置、大小、顏色等。 事件是指由用戶或系統(tǒng)觸發(fā)的一個特定的操作,如用鼠標單擊命令按鈕將會觸發(fā)一個Click事件。一個對象可以有多個事件,每個事件可以對

4、應一個程序,稱為事件過程。 方法程序是VFP 為對象內定的通用過程,能使對象執(zhí)行一個操作。方法程序過程代碼由VFP定義,用戶不可見,但可以修改,相當于增加功能,Visual FoxPro,8,類(CLASS)是已經定義了的關于對象的特征和行為的模板,是具有相同屬性特征和行為規(guī)則的多個對象的一種統(tǒng)一描述。類是一個數據模式和若干個程序過程經過封裝而形成的一個整體。類規(guī)定并提供了對象具有的屬性、事件和方法程序。對象是通過類來產生的,對象是類的實例。 基類(base class)是指由VFP預先定義的類,基類可以作為用戶定義類的基礎,用戶可以從基類來創(chuàng)建新類。 子類(subclass)是以某個類的定義

5、為起點創(chuàng)建的新類,前者稱為父類。類具有繼承性,新類將繼承父類的全部特征,包括對父類所做的任何修改。 用戶可以從基類派生出子類,這就是用戶定義類,可以為用戶定義類設置屬性、編寫事件代碼和方法程序。用戶定義類可以添加到表單控件工具欄中。 在VFP中類分為控件類和容器類,相應有控件對象和容器對象,Visual FoxPro,9,Visual Foxpro中的基類與對象,VFP的基類可分為控件類和容器類,每個VFP基類都有自己的一套屬性、方法和事件,也可以分別生成控件對象和容器對象,常用控件類,Visual FoxPro,10,容器(Container)類對象能夠包含其他對象,用戶可以單獨地訪問和處理

6、容器類對象中所包含的任何一個對象,常用容器類,容器類所能包含的對象,Visual FoxPro,11,2.2 面向對象的程序設計方法,控件:是表單上顯示數據和執(zhí)行操作的對象。 容器:是可以容納其它對象的對象。 VFP中對象的屬性、事件和方法程序由對象的屬性窗口給出。該窗口顯示了當前選定對象的所有屬性、事件和方法程序,并允許用戶更改屬性,定義事件代碼和修改方法程序,Visual FoxPro,12,常用的屬性選列,Visual FoxPro,13,事件驅動編程機制,在面向對象的程序設計中,事件是對象能夠識別和響應的動作。每個對象的事件是一些預先定義好的特定動作,可由系統(tǒng)觸發(fā),也可由用戶的操作觸發(fā)

7、,對于一些可視對象(如命令按鈕等),其最常見的事件往往是通過用戶的交互操作產生的,例如單擊鼠標或按下鍵盤上的某個鍵等。當作用在對象上的某個設定的事件發(fā)生時,與該事件相聯系的方法程序就運行并實現該程序的功能。 這種通過模擬對象對外部事件的反映,并進而完成由外部事件序列所規(guī)定的功能的編程機制即為事件驅動編程機制,事件代碼與方法代碼都是定義在某個對象中的一個程序過程,事件代碼可以由一個事件觸發(fā)而運行,其過程名與事件名相同,而一般的方法程序沒有一個與之對應的事件觸發(fā),必須依靠其他程序調用才能運行,Visual FoxPro,14,VFP部分常見事件,常用方法程序 Refresh方法程序 Form.Ob

8、ject.Refresh 功能: 重畫表單或控件, 并刷新所有的值。 Release:釋放表單 Show:顯示表單 Hide:隱藏表單,Visual FoxPro,15,對象引用規(guī)則 (1) 通常用以下引用關鍵字開頭: THISFORMSET 表示當前表單集 THISFORM 表示當前表單 THIS 表示當前對象 (2) 引用格式:引用關鍵字后跟一個點號,再寫出被引用對象或者對象的屬性、事件、或方法程序。 THISFORM.PropertyName|Event|Method|ObjectName THIS .PropertyName|Event|Method|ObjectName Object

9、Name .PropertyName|Event|Method 例如:THIS.Caption & 本對象(表單或控件)的Caption屬性 THISFORM.Cls & 本表單的Cls方法程序, 清除表單中的圖形和文本 多級引用: THISFORM.Command1.Caption & 本表單的Command1 命令按鈕的Caption屬性 THIS.Command1.Click & 本對象的Command1命 令按鈕的Click事件,Visual FoxPro,16,3) 控件也可引用包含它的容器,格式為: Control.Parent 其中Control表示控件, Parent表示容器。

10、 例如:THIS.Parent.Command1.Caption 表示引用本對象的容器(例如表單)的Command1命令按鈕的Caption屬性,編程方式設置屬性值 屬性值設置格式: ObjectName.Property=Setting 其中Setting為要設置的屬性值。 例如: THIS.FontBold=.T. & 本對象文本以粗體顯示 THIS.Parent.Caption = time() & 本對象的容器的 caption屬性設置為當前時間,Visual FoxPro,17,標準色的RGB參數,RGB函數的格式:RGB(nRedValue,nGreenValue,nBlueVal

11、ue) 其中參數nRedValue,nGreenValue,nBlueValue分別是表示顏色中含有紅綠藍的成分,范圍都是0到255。 例如:THISFORM.Forecolor=RGB(255,0,0,Visual FoxPro,18,舉例 設計只含一個文本框控件的表單(見圖),要求逐次單擊文本框的內部能輪流顯示當前日期與時間,試寫出設計步驟。 (1) 創(chuàng)建表單:往命令窗口鍵入命令MODIFY FORM rqsj,使顯示rqsj.scx的表單設計器窗口。 (2)創(chuàng)建文本框: 單擊表單控件工具欄中的文本框按鈕,然后單擊Form1表單窗口內某處,該處就會產生一個Text1文本框控件。 (3) 將

12、表單的Caption屬性改為“日期與時間”:單擊表單窗口,屬性窗口的組合框中便顯示Form1在屬性列表中選定Caption屬性在文本框中輸入日期與時間字樣,按回車鍵后表單窗口的標題欄就會顯示這些文字,Visual FoxPro,19,4) 表單的Load事件代碼的設置: 雙擊表單窗口打開代碼編輯窗口在對象組合框中確定表單選項,并在過程組合框中確定Load事件選項在列表框中輸入以下代碼: PUBLIC i & Load事件在表單裝入內存時觸發(fā),設置I為 公共變量 (5) 文本框的Click事件代碼編寫如下: IF i=.T. & 變量I用于控制輪流顯示 THISFORM.TEXT1.VALUE=

13、DATE() & 本表單的文本框的值設置為 當前日期 THISFORM.TEXT1.DateFormat=12 & 日期格式設置為年月日次序 THISFORM.TEXT1.DateMark=. & 年月日間隔符設置為點號 i=.F. & 觸發(fā)Click事件I值就變反 ELSE THISFORM.TEXT1.VALUE=TIME() & 本表單的文本框的值設置為 當前時間 i=.T. & 觸發(fā)Click事件I值就變反 ENDIF,6)保存表單,運行表單。 DO FORM rqsj,Visual FoxPro,20,例】使用表單設計器設計一個學生信息瀏覽窗口,如下圖,操作步驟: 打開表單設計器,新

14、建一個表單,設置表單的相關屬性、數據環(huán)境,command1控件的Click事件代碼: Sele students If not bof() go top this.enabled=.f. mand2.enabled=.f. Endif Tmand3.enabled=.t. Tmand4.enabled=.t. Thisform.refresh,command5控件的Click事件代碼: Thisform.release,通過表單控件工具欄,在表單中添加標簽、文本框、編輯框、圖片框、命令按鈕等相關控件,使用布局工具調整控件對象在表單中的位置,設置對應控件的相關屬性,將顯示、輸出表數據的控件與表對

15、應字段進行綁定,編寫命令按鈕的Click事件代碼,Visual FoxPro,21,封面”屬性設置,舉例 設計如圖所示的應用程序封面。 (1) 創(chuàng)建表單FM.SCX。 (2) 在表單上創(chuàng)建標簽和形狀控件各1個。 (3) 設置屬性:詳見下表 (4) 將封面的文字置前于橢圓:選定Label1,然后在布局工具欄中選定“置前”按鈕。若已置前,則該步驟可省。 (5) Form1的RightClick事件代碼編寫如下: THISFORM.Release & 右擊表單執(zhí)行Release方法程序, 從內存釋放該表單,Visual FoxPro,22,3 常用控件,標簽(Label) 常用來顯示表單中的各種說明

16、或提示,被顯示的文本在Caption屬性中指定,最多可包含256個字符,標簽的常用屬性,Visual FoxPro,23,圖象(Image) 利用圖象控件的Picture屬性可在表單上加載圖象。可在設計時在屬性窗口設置,也可在表單運行時通過在某一事件過程中設置代碼來完成,圖像的常用屬性,形狀(Shape)和線條(Line)用于在表單上畫各種形狀的圖形和線條,形狀的常用屬性,線條的常用屬性,Visual FoxPro,24,命令按鈕(CommandButton) 常用來啟動某個事件代碼,以完成特定功能,命令按鈕的常用屬性,Visual FoxPro,25,命令按鈕組(CommandGroup)

17、是包含一組命令按鈕的容器控件,可以單個或作為一組來操作其中的按鈕,命令按鈕組的常用屬性,Visual FoxPro,26,文本框(Text) 用來在應用系統(tǒng)與用戶之間進行數據交互的一種工具,允許用戶添加或編輯保存在表中非備注字段中的數據,文本框常用事件: GotFocus 文本框獲得焦點時發(fā)生 Valid 文本框失去焦點時發(fā)生 LostFocus 文本框失去焦點后發(fā)生 InteractiveChange 當文本框中的值發(fā)生改變時發(fā)生 Keypress 用戶按鍵時發(fā)生,根據傳遞的參數(所按鍵的Ascii值)以判斷用戶對鍵盤的操作。(nKeyCode,nShiftAltCtrl,文本框的常用屬性,

18、Visual FoxPro,27,編輯框(Edit) 和文本框類似,用于輸入或更改文本,并允許輸入多段文本。 注意:(1)編輯框只允許輸入文本類型數據,不能輸入其他類型數據。 (2)在編輯框中可以用回車符輸入多段文本,故常用來處理長的字符型字段或備注型字段(通過將編輯框與備注型字段綁定,列表框(List) 提供一組選項,用戶可以從中選擇一個或多個選項,列表框的常用屬性,列表框常用方法:AddItem:在列表框中增加列表項(RowSourceType屬性為0時)。 RemoveItem:從列表中刪除列表項(RowSourceType屬性為0時)。 Requery:當列表框中的值改變時,更新列表,

19、Visual FoxPro,28,組合框(ComboBox) 兼有文本框和列表框的功能,擁有和文本框及列表框相應的屬性和方法。通過控件的Style屬性可以有下拉組合框和下拉列表框二種類型供選擇,組合框特有的屬性,復選框(CheckBox) 用來表示某些狀態(tài)是否成立,復選框常用的屬性,Visual FoxPro,29,選項按鈕組(Optiongroup) 是包含選項按鈕的容器,往往包含若干個選項按鈕,但用戶只能從中選擇一個按鈕。當某個按鈕被選中時,其它按鈕則都變?yōu)槲催x中狀態(tài),選項按鈕組常用的屬性,計時器(Timer) 可只對時間做出反應,以一定的間隔重復地執(zhí)行某種操作,計時器常用的屬性,Time

溫馨提示

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

評論

0/150

提交評論