面向?qū)ο蟪绦蛟O(shè)計_第1頁
面向?qū)ο蟪绦蛟O(shè)計_第2頁
面向?qū)ο蟪绦蛟O(shè)計_第3頁
面向?qū)ο蟪绦蛟O(shè)計_第4頁
面向?qū)ο蟪绦蛟O(shè)計_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、本講內(nèi)容 面向?qū)ο蟪绦蛟O(shè)計 1面向?qū)ο蟪绦蛟O(shè)計基本概念 1.對象 VFP中,常用的基類對象共有21個,分為控件類與容器類兩種。 (1)控件:是表單上顯示數(shù)據(jù)和執(zhí)行操作的基本對象,例如:命令按鈕、文本框、標(biāo)簽等。 (2)容器:是可以容納其他對象的對象。例如:表單集、表單、選項按鈕組、命令按鈕組等。 2.屬性 對象的屬性用來表示對象的特征、狀態(tài)。 3.方法 對象的方法是對象內(nèi)定的通用過程,能使對象執(zhí)行一個操作。 4.事件 事件是一種預(yù)先定義的好的特定動作,可由用戶或系統(tǒng)觸發(fā)。 5.事件驅(qū)動的工作方式 某事件一旦被觸發(fā),系統(tǒng)就去執(zhí)行該事件對應(yīng)的過程,當(dāng)然事件過程的代碼需要用戶事先編寫好;過程執(zhí)行完畢

2、,則系統(tǒng)又處于等待狀態(tài)。2容器能包含的對象表單集表單、工具欄表單頁框、表格、任何控件頁框頁面頁面表格、任何控件表格表格列表格列標(biāo)頭對象、除表單、表單集、工具欄、計時器和列對象以外的對象選項按鈕組選項按鈕命令按鈕組命令按鈕工具欄任何控件、頁框、容器Container容器任何控件事件觸發(fā)時機(jī)事件觸發(fā)時機(jī)Load創(chuàng)建對象前MouseUp釋放鼠標(biāo)鍵時Init創(chuàng)建對象時MouseDown按下鼠標(biāo)鍵時Activate對象激活時MouseMove拖動鼠標(biāo)時Gotfocus對象得到焦點時KeyPress按下并釋放某鍵盤鍵時Click單擊鼠標(biāo)左鍵時Valid對象失去焦點前DblClick雙擊鼠標(biāo)左鍵時LostF

3、ocus對象失去焦點時InteractiveChange當(dāng)用戶通過鍵盤或鼠標(biāo)改變一個控件的值時Unload釋放對象時 Vfp部分常見事件列表 容器及包含的對象 3 表單設(shè)計器的工具 1.表單設(shè)計器的功能與特點: (1)創(chuàng)建表單及表單上的各個對象。 (2)修改已有的表單。 (3)操作方便與可視化。 2.表單設(shè)計工具 可供表單設(shè)計使用的各要素與工具: (1)表單設(shè)計器窗口與表單窗口:多數(shù)設(shè)計工作將在表單窗口中完成。 (2)屬性窗口:可以完成對象屬性的設(shè)置與修改。 (3)代碼編輯窗口:供用戶編寫事件或方法的程序代碼。 (4)各種工具欄 (5)數(shù)據(jù)環(huán)境設(shè)計器窗口:為表單創(chuàng)建或修改數(shù)據(jù)環(huán)境。 (6)快捷

4、菜單:不同對象有不同快捷菜單幫助完成經(jīng)常性工作。 4表單設(shè)計器 5 1.打開表單設(shè)計器 2.設(shè)置數(shù)據(jù)環(huán)境 (1)數(shù)據(jù)環(huán)境概念 數(shù)據(jù)環(huán)境泛指定義表單或表單集使用的數(shù)據(jù)源,可以是表、視圖和表間關(guān)系。 (2)數(shù)據(jù)環(huán)境設(shè)計器打開 打開數(shù)據(jù)環(huán)境設(shè)計器可使用表單快捷菜單的“數(shù)據(jù)環(huán)境”命令,或選定“顯示”菜單的數(shù)據(jù)環(huán)境命令。 (3)數(shù)據(jù)環(huán)境設(shè)計器快捷菜單與數(shù)據(jù)環(huán)境菜單 數(shù)據(jù)環(huán)境菜單提供了幾個命令,具有查看和修改數(shù)據(jù)環(huán)境的功能 添加命令 移去命令 瀏覽命令 例題數(shù)據(jù)環(huán)境的設(shè)置: 選定表單快捷菜單的“數(shù)據(jù)環(huán)境”命令以打開數(shù)據(jù)環(huán)境設(shè)計器。 選定“添加表或視圖”對話框的STAFF表,選定“添加”按鈕。 6 3.對象

5、的添加 在VFP中實現(xiàn)對象創(chuàng)建的主要工具是表單控件工具欄。 (1)表單控件工具欄 (2)對象的創(chuàng)建 (3)字段映象 字段映象:指當(dāng)用戶打開數(shù)據(jù)環(huán)境設(shè)計器窗口,選定表中的任一字段,將其拖至表單窗口中釋放,將在對應(yīng)位置產(chǎn)生兩個對象,一個是標(biāo)簽對象,用來顯示字段名或字段標(biāo)題;另一個對象類型則取決定于字段類型,字符型、數(shù)值型、日期型等用文本框?qū)ο蟊硎?,邏輯型用?fù)選框表示,備注型用編輯框表示,通用型用ActiveX綁定控件表示。而且該對象與字段數(shù)據(jù)自動實現(xiàn)數(shù)據(jù)綁定。 所謂數(shù)據(jù)綁定是指將對象的值與某個數(shù)據(jù)源聯(lián)系在一起。這樣對象的值便與數(shù)據(jù)源的值相一致,當(dāng)對象的值被修改也就意味字段的值被修改,反之也一樣。

6、7對象的添加: 利用字段映象功能往表單逐個添加字段對象。 單擊表單控件工具欄的命令鈕按鈕,單擊表單的對應(yīng)位置。 (4)四個輔助按鈕 選定對象按鈕按鈕鎖定按鈕查看類 生成器鎖定按鈕 表單控件工具欄選定對象文本框命令鈕選項按鈕組組合框圖象Activex綁定控件(oleboundcontrol)分隔符按鈕鎖定微調(diào)控件頁框形狀查看類標(biāo)簽編輯框命令按鈕組復(fù)選框列表框表格計時器Activex控件(olecontrol)線條容器超級鏈接生成器鎖pg定定8 4.調(diào)整控件的位置 5.設(shè)置對象的屬性 屬性窗口如圖所示,包括對象組合框、選項卡、屬性設(shè)置框、屬性列表框、屬性說明信息。屬性窗口的組成屬性列表框?qū)傩栽O(shè)置框

7、選項卡對象組合框?qū)傩哉f明信息9 6.事件代碼的編寫 編寫事件代碼先要打開代碼編輯窗口,打開某對象代碼編輯窗口的方法有很多種,具體如下: 方法1:雙擊該對象。 方法2:選定該對象的快捷菜單的“代碼”命令。 方法3:選定“顯示”菜單的“代碼”命令。 例題事件代碼編寫:Command1的Click事件代碼編寫如下: IF RECNO()1 SKIP -1 THISFORM.REFRESH ELSE MESSAGEBOX(本條記錄是首記錄!) ENDIF 10 7.保存表單 表單設(shè)計或修改完畢要存盤,存盤方法如下: 保存表單而不退出表單設(shè)計器:選擇“文件”菜單“保存”命令,若是新創(chuàng)建的表單要輸入文件名

8、。 保存表單并退出表單設(shè)計器:按Ctrl+W鍵或單擊表單設(shè)計器的關(guān)閉按鈕。若是新創(chuàng)建的表單要輸入文件名。 表單文件保存后,將產(chǎn)生擴(kuò)展名為.SCX的表單文件及擴(kuò)展名為.SCT的表單備注文件。 8.執(zhí)行表單 執(zhí)行表單有多種方法,具體如下: 方法1.表單設(shè)計器未關(guān)閉時,表單快捷菜單的“執(zhí)行表單”命令可運行表單。 方法2.用命令DO FORM 表單名 方法3.在項目管理器中選定要執(zhí)行的表單選定“運行”按鈕。 11 事件代碼編寫 VFP的事件代碼由VFP命令、屬性設(shè)置語句、方法與事件的調(diào)用語句構(gòu)成。 12在容器分層結(jié)構(gòu)中引用對象 1.對象的容器層次 VFP的對象分為容器類和控件類,VFP規(guī)定,在容器分層

9、結(jié)構(gòu)中引用對象必須提供對象的地址,即指明它相對于容器分層結(jié)構(gòu)的關(guān)系。圖1是一種可能的嵌套。 2.對象相對引用規(guī)則 VFP為了方便在容器分層結(jié)構(gòu)中引用對象,提供并規(guī)定了一些關(guān)鍵字及引用格式。 (1)引用關(guān)鍵字(圖2) 3.引用格式 引用格式:引用關(guān)鍵字.對象名.對象的屬性、事件或方法程序 (1)引用可以是單級的。例:THIS.Caption (2)引用也可以是多級的,但要逐級引用。例:THISFORM.Text1.Caption (3)控件也可引用包含它的容器。例:THIS.PARENT.Caption13關(guān)鍵字引用THIS引用該對象THISFORM引用包含該對象的表單THISFORMSET 引

10、用包含該對象的表單集PARENT引用包含該對象的直接容器容器嵌套層次 引用關(guān)鍵字 14編程設(shè)置屬性和調(diào)用方法程序 1.編程設(shè)置對象屬性 設(shè)置格式:對象名.屬性名=設(shè)置值 例:設(shè)計如圖所示表單,單擊“值交換”命令按鈕可實現(xiàn)兩文本框內(nèi)值的交換,單擊“背景交換”命令按鈕可實現(xiàn)兩文本框背景顏色的交換。表單15 (1)創(chuàng)建表單:FORM1 (2)添加控件:往FORM1中添加兩個標(biāo)簽控件、兩個文框控件、兩個命令按鈕控件。 (3)按表所示為各控件對象設(shè)置屬性。 (4)編寫命令按鈕的事件代碼 (5) 存盤并運行。16 2.編程調(diào)用對象方法程序 調(diào)用格式:格式:對象名.方法程序名(參數(shù)1,參數(shù)2,) (1)Cl

11、s方法 格式:OBJECT.Cls 功能:清除表單上的圖形或文本。 (2)Print方法 格式:OBJECT.Print(cText) 功能:在表單上打印字符串。 例:建立如圖7.8所示表單,單擊“產(chǎn)生3個隨機(jī)數(shù)”按鈕,會在表單上顯示3個0至1之間的隨機(jī)數(shù),單擊“清除”按鈕,將清除表單上顯示的數(shù)據(jù)。 (rand()17 1.事件序列 VFP是事件驅(qū)動的工作方式,VFP的事件或者由用戶動作觸發(fā)或者由系統(tǒng)觸發(fā),用戶的一個動作可能觸發(fā)一個或多個事件。這些事件的發(fā)生有一定的次序。 例:表單界面如圖,有一個命令鈕Command1與一個文本框Text1,在表單數(shù)據(jù)環(huán)境中有表STAFF.DBF,用戶的動作如

12、下 動作1:運行表單Form1; Form1.Load() Form1.dataenvironment.cursor1.Init() Form1.dataenvironment.Init() Form1.text1.Init() Fmand1.Init() Form1.Init()18Form1.Activate()Form1.text1.When()Form1.GotFocus()Form1.text1.GotFocus()Form1.Activate()動作2:在Text1中輸入字符AB;Form1.text1.KeyPress(65, 0) &即AForm1.text1.Interact

13、iveChange()Form1.text1.KeyPress(66, 0) &即BForm1.text1.InteractiveChange()動作3:用戶單擊Command1關(guān)閉表單;Form1.text1.Valid()19Fmand1.When()Form1.text1.LostFocus()Fmand1.GotFocus()Fmand1.Click()Fmand1.Valid()Fmand1.When() 表單關(guān)閉和釋放對象之后,將發(fā)生的事件,其次序正好與動作1中的事件次序相反。 Form1.Destroy()Fmand1.Destroy()Form1.text1.Destroy()

14、Form1.Unload()Form1.dataenvironment.AfterCloseTables()Form1.dataenvironment.Destroy()Form1.dataenvironment.cursor1.Destroy() 20 2.為事件指定代碼的位置 從上例可知,事件發(fā)生時,若沒有與之相關(guān)聯(lián)的代碼,不會發(fā)生任何操作。 3.焦點(Focus) 在上例中有許多的事件發(fā)生都與焦點有關(guān) 4.TAB鍵次序 在表單運行時,用戶可以使用TAB鍵來移動表單內(nèi)光標(biāo)的位置。所謂TAB鍵次序,就是按TAB鍵時光標(biāo)經(jīng)過表單中控件的順序。21 用戶自定義屬性和方法程序 1.用戶定義屬性 針對表單和表單集對象 , VFP允許用戶向它們添加自定義的屬性,用戶自定義屬性類似于變量。用戶為某個表單定義的屬性其作用范圍就是該表單,其作用相當(dāng)于在表單中定義的全局變量;用戶在表單集中定義的屬性其作用范圍就是該表單集。 自定義屬性分為變量屬性和數(shù)組屬性兩種。 1.變量屬性 (1)變量屬性的創(chuàng)建 選定“表單”菜單的“新建屬性”命令以

溫馨提示

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

最新文檔

評論

0/150

提交評論