




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、本講內(nèi)容本講內(nèi)容 第第7章章 面向?qū)ο蟪绦蛟O(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì) 7.1 面向?qū)ο蟪绦蛟O(shè)計(jì)基本概念 1.對(duì)象:構(gòu)成應(yīng)用程序的任何可操作的實(shí)體,如表、窗口、對(duì)話框等。對(duì)象:構(gòu)成應(yīng)用程序的任何可操作的實(shí)體,如表、窗口、對(duì)話框等。 VFP中,常用的對(duì)象共有21個(gè),分為控件類(lèi)與容器類(lèi)兩種。 (1)控件:是表單(FORM,即窗口樣式,用于提供操作界面)上顯示數(shù)據(jù)和執(zhí) 行操作的基本對(duì)象,例如:命令按鈕、文本框、標(biāo)簽等。 (2)容器:是可以容納其他對(duì)象的對(duì)象。例如:選項(xiàng)按鈕組、命令按鈕組等。 2.屬性屬性 對(duì)象的屬性用來(lái)表示對(duì)象的特征、狀態(tài)。如命令按鈕有位置、大小等 3.方法方法 對(duì)象的方法是對(duì)象內(nèi)定的通用過(guò)
2、程,能使對(duì)象執(zhí)行一個(gè)操作。如:調(diào)用表單的Release方法能將表單從內(nèi)存釋放??衫斫鉃閮?nèi)部函數(shù)。 4.事件事件 事件是指對(duì)象能識(shí)別并能響應(yīng)的一些預(yù)先定義好的動(dòng)作,可由用戶(hù)或系統(tǒng)觸發(fā)。如:?jiǎn)螕羰髽?biāo)等。 5.事件驅(qū)動(dòng)的工作方式事件驅(qū)動(dòng)的工作方式 某事件一旦被觸發(fā),系統(tǒng)就去執(zhí)行該事件對(duì)應(yīng)的過(guò)程代碼,當(dāng)然事件過(guò)程的代碼需要用戶(hù)事先編寫(xiě)好;過(guò)程執(zhí)行完畢,則系統(tǒng)又處于等待狀態(tài)。 面向?qū)ο蟪绦蛟O(shè)計(jì)不同于傳統(tǒng)的面向過(guò)程程序設(shè)計(jì),不再是單純地從代碼的第一行編到最后一行,而是考慮如何創(chuàng)建對(duì)象,利用對(duì)象來(lái)簡(jiǎn)化程序設(shè)計(jì)。容器能包含的對(duì)象表單集表單、工具欄表單頁(yè)框、表格、任何控件頁(yè)框頁(yè)面頁(yè)面表格、任何控件表格表格列表格
3、列標(biāo)頭對(duì)象、除表單、表單集、工具欄、計(jì)時(shí)器和列對(duì)象以外的對(duì)象選項(xiàng)按鈕組選項(xiàng)按鈕命令按鈕組命令按鈕工具欄任何控件、頁(yè)框、容器Container容器任何控件事件觸發(fā)時(shí)機(jī)事件觸發(fā)時(shí)機(jī)Load創(chuàng)建對(duì)象前MouseUp釋放鼠標(biāo)鍵時(shí)Init創(chuàng)建對(duì)象時(shí)MouseDown按下鼠標(biāo)鍵時(shí)Activate對(duì)象激活時(shí)MouseMove拖動(dòng)鼠標(biāo)時(shí)Gotfocus對(duì)象得到焦點(diǎn)時(shí)KeyPress按下并釋放某鍵盤(pán)鍵時(shí)Click單擊鼠標(biāo)左鍵時(shí)Valid對(duì)象失去焦點(diǎn)前DblClick雙擊鼠標(biāo)左鍵時(shí)LostFocus對(duì)象失去焦點(diǎn)時(shí)InteractiveChange當(dāng)用戶(hù)通過(guò)鍵盤(pán)或鼠標(biāo)改變一個(gè)控件的值時(shí)Unload釋放對(duì)象時(shí) Vfp
4、部分常見(jiàn)事件列表 容器及包含的對(duì)象 7.2.1 表單設(shè)計(jì)器的工具 1.表單設(shè)計(jì)器的功能與特點(diǎn): (1)創(chuàng)建表單及表單上的各個(gè)對(duì)象。 (2)修改已有的表單。 (3)操作方便與可視化。 2.表單設(shè)計(jì)工具 可供表單設(shè)計(jì)使用的各要素與工具: (1)表單設(shè)計(jì)器窗口與表單窗口:多數(shù)設(shè)計(jì)工作將在表單窗口中完成。 (2)屬性窗口:可以完成對(duì)象屬性的設(shè)置與修改。 (3)代碼編輯窗口:供用戶(hù)編寫(xiě)事件或方法的程序代碼。 (4)各種工具欄 (5)數(shù)據(jù)環(huán)境設(shè)計(jì)器窗口:為表單創(chuàng)建或修改數(shù)據(jù)環(huán)境。 (6)快捷菜單:不同對(duì)象有不同快捷菜單幫助完成經(jīng)常性工作。 (7)動(dòng)態(tài)菜單 表單設(shè)計(jì)器 7.2.2 表單的創(chuàng)建與表單設(shè)計(jì)器的操
5、作 表單的創(chuàng)建一般步驟為:打開(kāi)表單設(shè)計(jì)器設(shè)置數(shù)據(jù)環(huán)境添加對(duì)象調(diào)整對(duì)象的位置設(shè)置對(duì)象屬性編寫(xiě)事件代碼保存表單執(zhí)行表單。 例:(P166) 1.打開(kāi)表單設(shè)計(jì)器:三種方法(打開(kāi)表單設(shè)計(jì)器:三種方法(P167) 2.設(shè)置數(shù)據(jù)環(huán)境設(shè)置數(shù)據(jù)環(huán)境 (1)數(shù)據(jù)環(huán)境概念 數(shù)據(jù)環(huán)境泛指定義表單使用的數(shù)據(jù)源,可以是表、視圖和表間關(guān)系。 (2)數(shù)據(jù)環(huán)境設(shè)計(jì)器打開(kāi) 打開(kāi)數(shù)據(jù)環(huán)境設(shè)計(jì)器可使用表單快捷菜單的“數(shù)據(jù)環(huán)境”命令,或選定“顯示”菜單的數(shù)據(jù)環(huán)境命令。 (3)數(shù)據(jù)環(huán)境設(shè)計(jì)器快捷菜單與數(shù)據(jù)環(huán)境菜單 數(shù)據(jù)環(huán)境菜單提供了幾個(gè)命令,具有查看和修改數(shù)據(jù)環(huán)境的功能 添加命令 移去命令 瀏覽命令 例題數(shù)據(jù)環(huán)境的設(shè)置: 選定表單快捷
6、菜單的“數(shù)據(jù)環(huán)境”命令以打開(kāi)數(shù)據(jù)環(huán)境設(shè)計(jì)器。 選定“添加表或視圖”對(duì)話框的STAFF表,選定“添加”按鈕。 3.對(duì)象的添加對(duì)象的添加 在VFP中實(shí)現(xiàn)對(duì)象創(chuàng)建的主要工具是表單控件工具欄(介紹)與字段映象。 (1)利用表單控件工具欄添加對(duì)象 (2)利用字段映象添加對(duì)象 字段映象:指當(dāng)用戶(hù)打開(kāi)數(shù)據(jù)環(huán)境設(shè)計(jì)器窗口,選定表中的任一字段,將其拖至表單窗口中釋放,將在對(duì)應(yīng)位置產(chǎn)生兩個(gè)對(duì)象,一個(gè)是標(biāo)簽對(duì)象,用來(lái)顯示字段名或字段標(biāo)題;另一個(gè)對(duì)象類(lèi)型則取決定于字段類(lèi)型,字符型、數(shù)值型、日期型等用文本框?qū)ο蟊硎荆壿嬓陀脧?fù)選框表示,備注型用編輯框表示,通用型用ActiveX綁定控件表示。而且該對(duì)象與字段數(shù)據(jù)自動(dòng)實(shí)現(xiàn)
7、數(shù)據(jù)綁定。 所謂數(shù)據(jù)綁定是指將對(duì)象的值與某個(gè)數(shù)據(jù)源聯(lián)系在一起。這樣對(duì)象的值便與數(shù)據(jù)源的值相一致,當(dāng)對(duì)象的值被修改也就意味字段的值被修改,反之也一樣。 例題對(duì)象的添加: 利用字段映象功能往表單逐個(gè)添加字段對(duì)象。 單擊表單控件工具欄的命令鈕按鈕,單擊表單的對(duì)應(yīng)位置,創(chuàng)建Command1對(duì)象,依照此方法再創(chuàng)建。 (4)四個(gè)輔助按鈕 選定對(duì)象按鈕按鈕鎖定按鈕查看類(lèi) 生成器鎖定按鈕 表單控件工具欄表單控件工具欄選定對(duì)象選定對(duì)象文本框文本框命令鈕命令鈕選項(xiàng)按鈕組選項(xiàng)按鈕組組合框組合框圖象圖象Activex綁定控件(oleboundcontrol)分隔符分隔符按鈕鎖定按鈕鎖定微調(diào)控件微調(diào)控件頁(yè)框頁(yè)框形狀形狀
8、查看類(lèi)查看類(lèi)標(biāo)簽標(biāo)簽編輯框編輯框命 令 按 鈕命 令 按 鈕組組復(fù)選框列表框列表框表格表格計(jì)時(shí)器計(jì)時(shí)器Activex控件(olecontrol)線條線條容器容器超級(jí)鏈接超級(jí)鏈接生成器鎖生成器鎖pg定定定定 4.調(diào)整控件的位置調(diào)整控件的位置 5.設(shè)置對(duì)象的屬性設(shè)置對(duì)象的屬性 (本例如P174) 屬性窗口如圖所示,包括對(duì)象組合框、選項(xiàng)卡、屬性設(shè)置框、屬性列表框、屬性說(shuō)明信息。屬性窗口的組成屬性列表框?qū)傩粤斜砜驅(qū)傩栽O(shè)置框?qū)傩栽O(shè)置框選項(xiàng)卡選項(xiàng)卡對(duì)象組合框?qū)ο蠼M合框?qū)?性 說(shuō) 明 信屬 性 說(shuō) 明 信息息 6.事件代碼的編寫(xiě)(本例代碼見(jiàn)事件代碼的編寫(xiě)(本例代碼見(jiàn)P174) 編寫(xiě)事件代碼先要打開(kāi)代碼編輯窗
9、口,打開(kāi)某對(duì)象代碼編輯窗口的方法有很多種,具體如下: 方法1:雙擊該對(duì)象。 方法2:選定該對(duì)象的快捷菜單的“代碼”命令。 方法3:選定“顯示”菜單的“代碼”命令。 代碼編輯窗口中包含兩個(gè)組合框和一個(gè)窗口。 例題事件代碼編寫(xiě):Command1的Click事件代碼編寫(xiě)如下: IF RECNO()1 SKIP -1 THISFORM.REFRESH ELSE MESSAGEBOX(本條記錄是首記錄!) ENDIF 7.保存表單保存表單 表單設(shè)計(jì)或修改完畢要存盤(pán),存盤(pán)方法如下: 保存表單而不退出表單設(shè)計(jì)器:選擇“文件”菜單“保存”命令,若是新創(chuàng)建的表單要輸入文件名。 保存表單并退出表單設(shè)計(jì)器:按Ctr
10、l+W鍵或單擊表單設(shè)計(jì)器的關(guān)閉按鈕。若是新創(chuàng)建的表單要輸入文件名。 表單文件保存后,將產(chǎn)生擴(kuò)展名為.SCX的表單文件及擴(kuò)展名為.SCT的表單備注文件。 8.執(zhí)行表單執(zhí)行表單 執(zhí)行表單有多種方法,具體如下: 方法1.表單設(shè)計(jì)器未關(guān)閉時(shí),表單快捷菜單的“執(zhí)行表單”命令可運(yùn)行表單。 方法2.用命令DO FORM 表單名 方法3.在項(xiàng)目管理器中選定要執(zhí)行的表單選定“運(yùn)行”按鈕。 作業(yè):設(shè)置E:學(xué)生表為默認(rèn)目錄,完成例7.1的操作。 7.3 事件代碼編寫(xiě) VFP的事件代碼由VFP命令、屬性設(shè)置語(yǔ)句、方法與事件的調(diào)用語(yǔ)句構(gòu)成。 7.3.1 在容器分層結(jié)構(gòu)中引用對(duì)象 1.對(duì)象的容器層次 VFP的對(duì)象分為容器
11、類(lèi)和控件類(lèi),VFP規(guī)定,在容器分層結(jié)構(gòu)中引用對(duì)象必須提供對(duì)象的地址,即指明它相對(duì)于容器分層結(jié)構(gòu)的關(guān)系。圖1是一種可能的容器嵌套方式。 2.對(duì)象引用規(guī)則 VFP為了方便在容器分層結(jié)構(gòu)中引用對(duì)象,提供并規(guī)定了一些關(guān)鍵字及引用格式。 (1)引用關(guān)鍵字列表(圖2) 3.引用格式引用格式 引用格式:引用關(guān)鍵字.對(duì)象名.對(duì)象的屬性、事件或方法程序 (1)引用可以是單級(jí)的。例:THIS.Caption (引用本對(duì)象的caption屬性) (2)引用也可以是多級(jí)的,但要逐級(jí)引用。例:THISFORM.command1.Caption(引用本表單的 對(duì)象command1的caption屬性) (3)控件也可引用
12、包含它的容器。例:THIS.PARENT.Caption(引用包含本對(duì)象的直接容器的caption屬性)關(guān)鍵字引用的對(duì)象THIS當(dāng)前對(duì)象本身THISFORM當(dāng)前對(duì)象所在的表單THISFORMSET 當(dāng)前對(duì)象所在的表單集PARENT當(dāng)前對(duì)象的直接容器容器嵌套層次 引用關(guān)鍵字 formset1form1command1pageframe1page17.3.2 編程設(shè)置屬性和調(diào)用方法程序 1.編程設(shè)置對(duì)象屬性 設(shè)置格式:對(duì)象名.屬性名=設(shè)置值 例7.2:設(shè)計(jì)包含一個(gè)命令按鈕的表單,單擊該命令按鈕將使它在屏幕上隨機(jī)移動(dòng)。表單的背景色為藍(lán)色且運(yùn)行時(shí)在屏幕上居中。 2.編程調(diào)用對(duì)象方法程序 調(diào)用格式:格式
13、:對(duì)象名.方法程序名(參數(shù)1,參數(shù)2,) (1)Cls方法 格式:OBJECT.Cls 功能:清除表單上的圖形或文本。 (2)Print方法 格式:OBJECT.Print(cText) 功能:在表單上打印字符串。 例7.3在表單上顯示九九乘法表,單擊表單則清除該乘法表。(作業(yè))(1)新建表單FORM1(2)往FORM1中添加兩個(gè)命令按鈕控件,并修改其CAPTION屬性。(3)表單的LOAD事件編碼:public a(10) &定義全局變量數(shù)組A(10)圖7.8例7.3表單(4)“產(chǎn)生隨機(jī)數(shù)”按鈕的CLICK事件編碼:temp=thisform.currentx=2thisform.c
14、urrenty=10thisform.print(10個(gè)隨機(jī)數(shù)是:)for i=1 to 10 a(i)=int(rand()*100) &產(chǎn)生10個(gè)100以?xún)?nèi)的隨機(jī)整數(shù),放在數(shù)組A(10)中 temp=temp+str(a(i),3)+, endforthisform.currentx=4thisform.currenty=30thisform.print(temp)(5)“排序”按鈕的CLICK事件編碼: temp=thisform.currentx=2thisform.currenty=50thisform.print(排序如下:)for i=1 to 9 &利用雙重循環(huán)
15、,實(shí)現(xiàn)數(shù)組元素排序for j=i+1 to 10if a(i)a(j) p=a(i) a(i)=a(j) a(j)=pendifendforendforfor i=1 to 10temp=temp+str(a(i),3)+,endforthisform.currentx=4thisform.currenty=70thisform.print(temp)(6)表單的CLICK事件編碼:thisform.cls &清空表單上顯示的數(shù)據(jù)(7)表單的UNLOAD事件編碼:release a 7.3.3 VFP的事件序列 (了解) 1.事件序列事件序列 VFP是事件驅(qū)動(dòng)的工作方式,VFP的事件或
16、者由用戶(hù)動(dòng)作觸發(fā)或者由系統(tǒng)觸發(fā),用戶(hù)的一個(gè)動(dòng)作可能觸發(fā)一個(gè)或多個(gè)事件。這些事件的發(fā)生有一定的次序。 例:表單界面如圖7.7,有一個(gè)命令鈕Command1與一個(gè)文本框Text1,在表單數(shù)據(jù)環(huán)境中有表STAFF.DBF,用戶(hù)的動(dòng)作如下 動(dòng)作1:運(yùn)行表單Form1; Form1.Load() Form1.dataenvironment.cursor1.Init() Form1.dataenvironment.Init() Form1.text1.Init() Fmand1.Init() Form1.Init()Form1.Activate()Form1.text1.When()Form1.GotFo
17、cus()Form1.text1.GotFocus()Form1.Activate()動(dòng)作2:在Text1中輸入字符AB;Form1.text1.KeyPress(65, 0) &即AForm1.text1.InteractiveChange()Form1.text1.KeyPress(66, 0) &即BForm1.text1.InteractiveChange()動(dòng)作3:用戶(hù)單擊Command1關(guān)閉表單;Form1.text1.Valid()Fmand1.When()Form1.text1.LostFocus()Fmand1.GotFocus()Fmand1.Click()
18、Fmand1.Valid()Fmand1.When() 表單關(guān)閉和釋放對(duì)象之后,將發(fā)生的事件,其次序正好與動(dòng)作1中的事件次序相反。 Form1.Destroy()Fmand1.Destroy()Form1.text1.Destroy()Form1.Unload()Form1.dataenvironment.AfterCloseTables()Form1.dataenvironment.Destroy()Form1.dataenvironment.cursor1.Destroy() 2.為事件指定代碼的位置 從上例可知,事件發(fā)生時(shí),若沒(méi)有與之相關(guān)聯(lián)的代碼,不會(huì)發(fā)生任何操作。 3.焦點(diǎn)(Focus) 在上例中有許多的事件發(fā)生都與焦點(diǎn)有關(guān) 4.TAB鍵次序 在表單運(yùn)行時(shí),用戶(hù)可以使用TAB鍵來(lái)移動(dòng)表單內(nèi)光標(biāo)的位置。所謂TAB鍵次序,就是按TAB鍵時(shí)光標(biāo)經(jīng)過(guò)表單中控件的順序。 7.4 用戶(hù)自定義屬性和方法程序(了解) 1.用戶(hù)定義屬性 針對(duì)表單和表單集對(duì)象 , VFP允許用戶(hù)向它們添加自定義的屬性,用戶(hù)自定義屬性類(lèi)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字貿(mào)易時(shí)代高職院校商貿(mào)類(lèi)專(zhuān)業(yè)課程體系創(chuàng)新與優(yōu)化
- 生態(tài)環(huán)境風(fēng)險(xiǎn)預(yù)警與應(yīng)急響應(yīng)機(jī)制建設(shè)
- 智能時(shí)代下綜合實(shí)踐活動(dòng)課程的循證評(píng)價(jià)
- 小學(xué)語(yǔ)文革命文化題材的教學(xué)與學(xué)習(xí)探討
- 公司員工儲(chǔ)物柜管理制度
- 公司垃圾填埋場(chǎng)管理制度
- 公司大堂降溫設(shè)備管理制度
- 數(shù)字鄉(xiāng)村治理中的硬法與軟法協(xié)同發(fā)展
- 公司用車(chē)出事故管理制度
- 公司研發(fā)部組織管理制度
- GB/T 19023-2025質(zhì)量管理體系成文信息指南
- 多余物管理制度
- 2024北京朝陽(yáng)區(qū)三年級(jí)(下)期末語(yǔ)文試題及答案
- DL5190.5-2019電力建設(shè)施工技術(shù)規(guī)范第5部分:管道及系統(tǒng)
- 河南省鄭州市高新區(qū)2023-2024學(xué)年下學(xué)期七年級(jí)期末英語(yǔ)試卷
- 腳手架常見(jiàn)安全隱患及違反條款
- DB61∕T 1143-2018 陜西省公共安全視頻監(jiān)控聯(lián)網(wǎng)系統(tǒng)工程技術(shù)規(guī)范
- 安全生產(chǎn)培訓(xùn)《低壓電工》實(shí)操科目一、三復(fù)習(xí)題
- 郁證--PPT課件(PPT 35頁(yè))
- 1才小型澆注生產(chǎn)線方案
- 半命題作文“-------的你--------的我”寫(xiě)作指導(dǎo)及范文
評(píng)論
0/150
提交評(píng)論