大綱要求
使用表單設(shè)計(jì)器:
(1) 在表單中加入和修改控件對(duì)象。
(2) 設(shè)定數(shù)據(jù)環(huán)境。
知識(shí)要點(diǎn)
1.表單
表單(Form)就是一個(gè)輸入或顯示某種信息的界面(窗口),是Visual FoxPro提供的用于建立應(yīng)用程序界面的工具之一。被大量應(yīng)用于人機(jī)交互界面的設(shè)計(jì)當(dāng)中。應(yīng)用表單設(shè)計(jì)功能,可以設(shè)計(jì)出具有Windows風(fēng)格的各種程序界面。由于表單使用非常頻繁,所以在VFP中,專門提供了一個(gè)表單設(shè)計(jì)器來設(shè)計(jì)表單程序。 表單是一個(gè)容器,除含有窗口的標(biāo)準(zhǔn)控件標(biāo)題欄、控制按鈕外,可以向表單中添加各種對(duì)象,如按鈕、文本框、表格、圖片等。在表單設(shè)計(jì)器環(huán)境下可以進(jìn)行添加、刪除及布局控件的操作。
2. 對(duì)象
對(duì)象(Object)是反映客觀事物屬性及行為特征的描述??陀^世界里的任何實(shí)體都可以被看作是對(duì)象。對(duì)象可以是具體的物,也可以指某些概念。從編程的角度來看,對(duì)象是一種將數(shù)據(jù)和操作過程結(jié)合在一起的數(shù)據(jù)結(jié)構(gòu),或者是一種具有屬性(數(shù)據(jù))和方法(過程和函數(shù))的集合體。事實(shí)上程序中的對(duì)象就是對(duì)客觀世界中對(duì)象的一種抽象描述。每個(gè)對(duì)象都具有描述其特征的屬性,及附屬于它的行為。對(duì)象把事物的屬性和行為封裝在一起,是一個(gè)動(dòng)態(tài)的概念。對(duì)象是面向?qū)ο缶幊痰幕驹?,是“類”的具體實(shí)例。
(1)對(duì)象屬性:屬性用來表示對(duì)象的狀態(tài)。
(2)對(duì)象方法:對(duì)象方法是描述對(duì)象行為的過程。
對(duì)象的屬性特征標(biāo)識(shí)了對(duì)象的物理性質(zhì),對(duì)象的行為特征描述了對(duì)象可執(zhí)行的行為動(dòng)作;對(duì)象的每一種屬性,都是與其他對(duì)象加以區(qū)別的特性,都具有一定的含義,并賦予一定的值;對(duì)象大多數(shù)是可見的,也有一些特殊的對(duì)象是不可見的。
3.類
v 類是對(duì)一類相似對(duì)象的性質(zhì)描述,這些對(duì)象具有相同種類的屬性以及方法就好比是一個(gè)摸板。
對(duì)象是類的一個(gè)實(shí)例。
v 類的類型
子類和父類
v 類的四大特征
§繼承性 —— 說明了子類延用父類特征的能力;
§多態(tài)性 —— 指一些關(guān)聯(lián)的類包含同名的方法程序,但方法程序的內(nèi)容可以不同,具體調(diào)用在運(yùn)行時(shí)根據(jù)對(duì)象的類確定;
§封裝性 —— 說明包含和隱藏對(duì)象信息,如內(nèi)部數(shù)據(jù)結(jié)構(gòu)和代 碼的能力;
§抽象性 —— 指提取一個(gè)類或?qū)ο笈c眾不同的特征,而不對(duì)該 類的所有信息進(jìn)行處理;
4.子類與繼承
在面向?qū)ο蟮姆椒ɡ铮^承是指在基于現(xiàn)有的類創(chuàng)建新類時(shí),新類繼承了現(xiàn)有類里的方法和屬性。此外,可以為新類添加新的方法和屬性。我們把新類稱為現(xiàn)有類的子類,而把現(xiàn)有類稱為新類的父類。
一個(gè)子類的成員一般包括:
(1)從其父類繼承的屬性和方法。
(2)由子類自己定義的屬性和方法。
5.基類
Visual FoxPro 基類是系統(tǒng)本身內(nèi)含的,并不存放在某個(gè)類庫中。用戶可以基于基類生成所需要的對(duì)象,也可以擴(kuò)展基類創(chuàng)建自己的子類。
VFP 基類的種類:
下列表中列出了VFP的基類:
容器類
容器類對(duì)象
包容其他類的基類。將容器類的對(duì)象無論在設(shè)計(jì)時(shí)還是在運(yùn)行時(shí),均可以將該容器類的對(duì)象作為一個(gè)整體進(jìn)行操作,也可以分別對(duì)其包容的對(duì)象處理。
控件類
控件類 可以包含在容器類中的基類??丶惒荒馨渌鼘?duì)象
類名 o含義 類名 含義
Active Doc 活動(dòng)文檔 LABEL 標(biāo)簽
Checkbox 復(fù)選框 LINE 線條
Column (表格)列 LISTBOX 列表框
Combo box 組合框 OLECONTROL OLE 容器控件
Command button 命令按鈕 OLEBOUNDCONTROL OLE 綁定控件
Command group 命令按鈕組 OPTIONBUTTON 選項(xiàng)按鈕
Container 容器 OPTIONGROUP 選項(xiàng)按鈕組
Control 控件 PAGEFRAME 頁框
Custom 定制 PROJECTHOOK 項(xiàng)目掛鉤
Edit box 編輯框 SEPARATOR 分隔符
Form 表單 SHAPE 形狀
Form set 表單集 SPINNER 微調(diào)控件
Grid 表格 TEXTBOX 文本框
Header 列標(biāo)頭 TIMER 定時(shí)器
每個(gè)VFP 基類都有自己的一套屬性、方法和事件。當(dāng)擴(kuò)展某個(gè)基類創(chuàng)建用戶自定義類時(shí),該類就是用戶自定義類的父類,用戶自定義類繼承該基類中的屬性、方法和事件。
表:基類的最小屬性集
在程序設(shè)計(jì)中,可以使用CREATE OBJECT函數(shù)來直接生成基于某個(gè)類的對(duì)象。該函數(shù)的格式如下:
CREATE OBJECT(<類名>[,<參數(shù)1>,<參數(shù)2>,……])
函數(shù)基于指定的類生成一個(gè)對(duì)象,并返回對(duì)象的引用。
對(duì)象屬性訪問以及對(duì)象方法調(diào)用的基本格式如下:
<對(duì)象引用>.<對(duì)象屬性>
<對(duì)象引用>.<對(duì)象方法>[(參數(shù)列表)]
【例】基于Visual FoxPro的FORM類生成一個(gè)對(duì)象,然后訪問該對(duì)象的一些屬性和方法。
Oform=CREATEOBJECT("Form") &&生成一個(gè)空白表單
Oform.show &&顯示表單
Oform.caption=”演示” &&修改表單的標(biāo)題
?”這是一個(gè)生成對(duì)象的演示程序” &&在表單上輸出字符串
Oform.release
例 題
1.在Visual FoxPro中,表單是_______。
A.窗口界面 B.一個(gè)表中各個(gè)記錄的清單
C.數(shù)據(jù)庫中各個(gè)表的清單 D.?dāng)?shù)據(jù)庫查詢的列表
[解析] 本題考查的知識(shí)點(diǎn)是表單的基本知識(shí)。在Visual FoxPro中表單實(shí)際是一個(gè)窗口界面。在Visual FoxPro中各種對(duì)話框、向?qū)?、設(shè)計(jì)器等窗口統(tǒng)稱為表單。選項(xiàng)B說法錯(cuò)誤。一個(gè)表中的各個(gè)記錄的清單不能算是表單。選項(xiàng)C錯(cuò)誤,數(shù)據(jù)庫中的表就是表,與表單不同。選項(xiàng)D數(shù)據(jù)庫查詢的列表也不能算是表單。
[答案] A
2._____是面向?qū)ο蟪绦蛟O(shè)計(jì)中程序運(yùn)行的最基本實(shí)體。
A.類
B.對(duì)象
C.方法
D.函數(shù)
Class
類名,該類屬于何種類型,指當(dāng)前對(duì)象基于那個(gè)類而生成。
BaseClass 基類名,該類的基類,指當(dāng)前類從那個(gè)VFP基類派生而來。
ClassLibray 類庫名,類庫文件,指當(dāng)前類存放在那個(gè)類庫中 。
ParentClass 父類名,該類的父類,指當(dāng)前類從那個(gè)類直接派生而來。
[解析] 本題考查的知識(shí)點(diǎn)是面向?qū)ο蟪绦蛟O(shè)計(jì)的基本知識(shí)。在Visual FoxPro中,面向?qū)ο蟮某绦蛟O(shè)計(jì)以對(duì)象及數(shù)據(jù)結(jié)構(gòu)為中心。因此對(duì)象是面向?qū)ο蟪绦蛟O(shè)計(jì)中程序運(yùn)行的最基本實(shí)體。
[答案] B
3 . 對(duì)象的______ 是指對(duì)象可以執(zhí)行的動(dòng)作或它的行為。
A.方法 B.屬性 C.事件 D.控件
[解析] 本題考查的知識(shí)點(diǎn)是對(duì)象的基本知識(shí)。在Visual FoxPro 中,每個(gè)對(duì)象都有自己的屬性和方法,也可以對(duì)一個(gè)被稱為事件的動(dòng)作進(jìn)行識(shí)別和響應(yīng)。對(duì)象的屬性一般用各種類型的數(shù)據(jù)來表示。對(duì)象的方法是指對(duì)象可以執(zhí)行的動(dòng)作或它的行為。掌握這這些知識(shí),便很容易選擇選項(xiàng)A 正確。選項(xiàng)D 錯(cuò)誤,沒有“對(duì)象的控件”。
[答案] A
6.容器和控件
Visual FoxPro 中的類一般可分為兩種類型:容器類和控件類。相應(yīng)地,可分別生成容器(對(duì)象)和控件(對(duì)象)。
控件:
是一個(gè)可以以圖形化的方式顯示出來并能與用戶進(jìn)行交互的對(duì)象??丶1环胖迷谝粋€(gè)容器里。
容器:
容器可以被認(rèn)為是一種特殊的控件,它能包容其他的控件或容器控件是一個(gè)可以以圖形化的方式顯示出來,并能與用戶進(jìn)行交互的對(duì)象,
【例】如果Form1中有一個(gè)命令按鈕組commandgroup1,該命令按鈕組有兩個(gè)命令按鈕:
command1 和command2,label1是表單form1上的一個(gè)標(biāo)簽控件。
如果要在命令按鈕command1的事件(如單擊事件)代碼中修改該按鈕的標(biāo)題可用下列命令:
this.caption=”確定”
如果要在命令按鈕command1的事件代碼中修改命令按鈕command2的標(biāo)題可用下列命令:
thisform.Commandgroup1.command2.caption="取消"
或者
this.parent.command2.caption="取消"
但不能寫成下列命令:
thisform.command2. caption="取消"
如果要在命令按鈕command1的事件代碼中修改表單的標(biāo)題可用下列命令:
This.Parent.parent.Caption=”測試窗口”
或者
thisform.caption=”測試窗口”
表容器層次中的對(duì)象引用屬性或關(guān)鍵字
屬性或關(guān)鍵字 引用
Parent 當(dāng)前對(duì)象的直接容器對(duì)象
This ..ó
當(dāng)前對(duì)象
ThisForm μ 當(dāng)前對(duì)象所在的表單
ThisFormSet μ±當(dāng)前對(duì)象所在的表單集
7.事件
事件是一種由系統(tǒng)預(yù)先定義而由用戶或系統(tǒng)發(fā)出的動(dòng)作。事件作用于對(duì)象,對(duì)象識(shí)別事件并作出相應(yīng)反應(yīng)
與方法集可以無限擴(kuò)展不同,事件集是固定的,用戶不能定義新的事件
1.關(guān)于Visual FoxPro基類的最小事件集Init的說明正確的是______
A.當(dāng)對(duì)象產(chǎn)生時(shí)引發(fā)
B.當(dāng)對(duì)象從內(nèi)存中釋放時(shí)引發(fā)
C.當(dāng)方法或事件代碼出現(xiàn)運(yùn)行錯(cuò)誤時(shí)引發(fā)
D.當(dāng)用戶用鼠標(biāo)單擊程序界面上的一個(gè)命令按鈕時(shí)引發(fā)
[解析] 本題考查的是關(guān)于事件的知識(shí)。只要讀者能很好地記住基本知識(shí),就能得出正確答案A。
[答案] A
2.Init 事件由______時(shí)引發(fā)。
A.對(duì)象從內(nèi)存中釋放 B.事件代碼出現(xiàn)錯(cuò)誤
C.方法代碼出現(xiàn)錯(cuò)誤 D.對(duì)象生成
[解析] 本題考查的知識(shí)點(diǎn)是Visual FoxPro 中的事件。Init 事件在對(duì)象生成時(shí)引發(fā)。
選項(xiàng)A 錯(cuò)誤,因?yàn)閺膬?nèi)存中釋放對(duì)象時(shí)引發(fā)的事件是Destroy。選項(xiàng)B 和C 錯(cuò)誤,因?yàn)镋rror 事件是由事件或方法代碼出錯(cuò)時(shí)引發(fā)。
[答案] D
3.在容器對(duì)象的嵌套層次中,事件的處理遵循獨(dú)立性原則,即______。
A.每個(gè)對(duì)象識(shí)別并處理其他的屬性
B.每個(gè)對(duì)象識(shí)別并處理屬于自己的方法
Init 創(chuàng)建對(duì)象時(shí)發(fā)生的事件。
從內(nèi)存中釋放對(duì)象時(shí)發(fā)生的事件。
鼠標(biāo)左鍵單擊對(duì)象時(shí)發(fā)生的事件。
Dbclick 鼠標(biāo)左鍵雙擊對(duì)象時(shí)發(fā)生的事件。
Error 當(dāng)方法或事件代碼出現(xiàn)運(yùn)行錯(cuò)誤時(shí)引發(fā)。
鼠標(biāo)右鍵單擊對(duì)象時(shí)發(fā)生的事件。
Click
Rightclick
C.每個(gè)對(duì)象識(shí)別并處理屬于自己的事件
D.每個(gè)對(duì)象識(shí)別并處理其他的事件
[解析] 本題考查的知識(shí)點(diǎn)是事件的基本知識(shí)。在容器對(duì)象的嵌套層次中,事件的處理遵循獨(dú)立性原則,意思是指每個(gè)對(duì)象識(shí)別并處理屬于自己的事件。
選項(xiàng)A 錯(cuò)誤,因?yàn)閷?duì)象并不會(huì)處理其他的屬性。選項(xiàng)B 錯(cuò)誤,因?yàn)閷?duì)象不是處理方法而是事件。選項(xiàng)D 錯(cuò)誤,因?yàn)槭录幚淼莫?dú)立性原則只處理并識(shí)別自己的事件,不是其他事件。
[答案] C
4.在Visual FoxPro 中,當(dāng)對(duì)象方法或事件代碼在運(yùn)行過程中產(chǎn)生錯(cuò)誤時(shí)將引發(fā)______事件。
A.Load B.Init
C.Destroy D.Error
[解析] 本題考查的知識(shí)點(diǎn)是事件的應(yīng)用。在visual FoxPro 中,當(dāng)對(duì)象方法或事件代碼在運(yùn)行過程中產(chǎn)生錯(cuò)誤時(shí)將引發(fā)Error 事件。
選項(xiàng)A 在表單對(duì)象建立之前引發(fā),即運(yùn)行表單時(shí),先引發(fā)表單的Load 事件,再引發(fā)表單的Init 事件。選項(xiàng)B 在對(duì)象建立時(shí)引發(fā)。選項(xiàng)C 在對(duì)象釋放時(shí)引發(fā)。選項(xiàng)D 當(dāng)對(duì)象方法或事件代碼在運(yùn)行過程中產(chǎn)生錯(cuò)誤時(shí)引發(fā)。
[答案] D
使用表單設(shè)計(jì)器:
(1) 在表單中加入和修改控件對(duì)象。
(2) 設(shè)定數(shù)據(jù)環(huán)境。
知識(shí)要點(diǎn)
1.表單
表單(Form)就是一個(gè)輸入或顯示某種信息的界面(窗口),是Visual FoxPro提供的用于建立應(yīng)用程序界面的工具之一。被大量應(yīng)用于人機(jī)交互界面的設(shè)計(jì)當(dāng)中。應(yīng)用表單設(shè)計(jì)功能,可以設(shè)計(jì)出具有Windows風(fēng)格的各種程序界面。由于表單使用非常頻繁,所以在VFP中,專門提供了一個(gè)表單設(shè)計(jì)器來設(shè)計(jì)表單程序。 表單是一個(gè)容器,除含有窗口的標(biāo)準(zhǔn)控件標(biāo)題欄、控制按鈕外,可以向表單中添加各種對(duì)象,如按鈕、文本框、表格、圖片等。在表單設(shè)計(jì)器環(huán)境下可以進(jìn)行添加、刪除及布局控件的操作。
2. 對(duì)象
對(duì)象(Object)是反映客觀事物屬性及行為特征的描述??陀^世界里的任何實(shí)體都可以被看作是對(duì)象。對(duì)象可以是具體的物,也可以指某些概念。從編程的角度來看,對(duì)象是一種將數(shù)據(jù)和操作過程結(jié)合在一起的數(shù)據(jù)結(jié)構(gòu),或者是一種具有屬性(數(shù)據(jù))和方法(過程和函數(shù))的集合體。事實(shí)上程序中的對(duì)象就是對(duì)客觀世界中對(duì)象的一種抽象描述。每個(gè)對(duì)象都具有描述其特征的屬性,及附屬于它的行為。對(duì)象把事物的屬性和行為封裝在一起,是一個(gè)動(dòng)態(tài)的概念。對(duì)象是面向?qū)ο缶幊痰幕驹?,是“類”的具體實(shí)例。
(1)對(duì)象屬性:屬性用來表示對(duì)象的狀態(tài)。
(2)對(duì)象方法:對(duì)象方法是描述對(duì)象行為的過程。
對(duì)象的屬性特征標(biāo)識(shí)了對(duì)象的物理性質(zhì),對(duì)象的行為特征描述了對(duì)象可執(zhí)行的行為動(dòng)作;對(duì)象的每一種屬性,都是與其他對(duì)象加以區(qū)別的特性,都具有一定的含義,并賦予一定的值;對(duì)象大多數(shù)是可見的,也有一些特殊的對(duì)象是不可見的。
3.類
v 類是對(duì)一類相似對(duì)象的性質(zhì)描述,這些對(duì)象具有相同種類的屬性以及方法就好比是一個(gè)摸板。
對(duì)象是類的一個(gè)實(shí)例。
v 類的類型
子類和父類
v 類的四大特征
§繼承性 —— 說明了子類延用父類特征的能力;
§多態(tài)性 —— 指一些關(guān)聯(lián)的類包含同名的方法程序,但方法程序的內(nèi)容可以不同,具體調(diào)用在運(yùn)行時(shí)根據(jù)對(duì)象的類確定;
§封裝性 —— 說明包含和隱藏對(duì)象信息,如內(nèi)部數(shù)據(jù)結(jié)構(gòu)和代 碼的能力;
§抽象性 —— 指提取一個(gè)類或?qū)ο笈c眾不同的特征,而不對(duì)該 類的所有信息進(jìn)行處理;
4.子類與繼承
在面向?qū)ο蟮姆椒ɡ铮^承是指在基于現(xiàn)有的類創(chuàng)建新類時(shí),新類繼承了現(xiàn)有類里的方法和屬性。此外,可以為新類添加新的方法和屬性。我們把新類稱為現(xiàn)有類的子類,而把現(xiàn)有類稱為新類的父類。
一個(gè)子類的成員一般包括:
(1)從其父類繼承的屬性和方法。
(2)由子類自己定義的屬性和方法。
5.基類
Visual FoxPro 基類是系統(tǒng)本身內(nèi)含的,并不存放在某個(gè)類庫中。用戶可以基于基類生成所需要的對(duì)象,也可以擴(kuò)展基類創(chuàng)建自己的子類。
VFP 基類的種類:
下列表中列出了VFP的基類:
容器類
容器類對(duì)象
包容其他類的基類。將容器類的對(duì)象無論在設(shè)計(jì)時(shí)還是在運(yùn)行時(shí),均可以將該容器類的對(duì)象作為一個(gè)整體進(jìn)行操作,也可以分別對(duì)其包容的對(duì)象處理。
控件類
控件類 可以包含在容器類中的基類??丶惒荒馨渌鼘?duì)象
類名 o含義 類名 含義
Active Doc 活動(dòng)文檔 LABEL 標(biāo)簽
Checkbox 復(fù)選框 LINE 線條
Column (表格)列 LISTBOX 列表框
Combo box 組合框 OLECONTROL OLE 容器控件
Command button 命令按鈕 OLEBOUNDCONTROL OLE 綁定控件
Command group 命令按鈕組 OPTIONBUTTON 選項(xiàng)按鈕
Container 容器 OPTIONGROUP 選項(xiàng)按鈕組
Control 控件 PAGEFRAME 頁框
Custom 定制 PROJECTHOOK 項(xiàng)目掛鉤
Edit box 編輯框 SEPARATOR 分隔符
Form 表單 SHAPE 形狀
Form set 表單集 SPINNER 微調(diào)控件
Grid 表格 TEXTBOX 文本框
Header 列標(biāo)頭 TIMER 定時(shí)器
每個(gè)VFP 基類都有自己的一套屬性、方法和事件。當(dāng)擴(kuò)展某個(gè)基類創(chuàng)建用戶自定義類時(shí),該類就是用戶自定義類的父類,用戶自定義類繼承該基類中的屬性、方法和事件。
表:基類的最小屬性集
在程序設(shè)計(jì)中,可以使用CREATE OBJECT函數(shù)來直接生成基于某個(gè)類的對(duì)象。該函數(shù)的格式如下:
CREATE OBJECT(<類名>[,<參數(shù)1>,<參數(shù)2>,……])
函數(shù)基于指定的類生成一個(gè)對(duì)象,并返回對(duì)象的引用。
對(duì)象屬性訪問以及對(duì)象方法調(diào)用的基本格式如下:
<對(duì)象引用>.<對(duì)象屬性>
<對(duì)象引用>.<對(duì)象方法>[(參數(shù)列表)]
【例】基于Visual FoxPro的FORM類生成一個(gè)對(duì)象,然后訪問該對(duì)象的一些屬性和方法。
Oform=CREATEOBJECT("Form") &&生成一個(gè)空白表單
Oform.show &&顯示表單
Oform.caption=”演示” &&修改表單的標(biāo)題
?”這是一個(gè)生成對(duì)象的演示程序” &&在表單上輸出字符串
Oform.release
例 題
1.在Visual FoxPro中,表單是_______。
A.窗口界面 B.一個(gè)表中各個(gè)記錄的清單
C.數(shù)據(jù)庫中各個(gè)表的清單 D.?dāng)?shù)據(jù)庫查詢的列表
[解析] 本題考查的知識(shí)點(diǎn)是表單的基本知識(shí)。在Visual FoxPro中表單實(shí)際是一個(gè)窗口界面。在Visual FoxPro中各種對(duì)話框、向?qū)?、設(shè)計(jì)器等窗口統(tǒng)稱為表單。選項(xiàng)B說法錯(cuò)誤。一個(gè)表中的各個(gè)記錄的清單不能算是表單。選項(xiàng)C錯(cuò)誤,數(shù)據(jù)庫中的表就是表,與表單不同。選項(xiàng)D數(shù)據(jù)庫查詢的列表也不能算是表單。
[答案] A
2._____是面向?qū)ο蟪绦蛟O(shè)計(jì)中程序運(yùn)行的最基本實(shí)體。
A.類
B.對(duì)象
C.方法
D.函數(shù)
Class
類名,該類屬于何種類型,指當(dāng)前對(duì)象基于那個(gè)類而生成。
BaseClass 基類名,該類的基類,指當(dāng)前類從那個(gè)VFP基類派生而來。
ClassLibray 類庫名,類庫文件,指當(dāng)前類存放在那個(gè)類庫中 。
ParentClass 父類名,該類的父類,指當(dāng)前類從那個(gè)類直接派生而來。
[解析] 本題考查的知識(shí)點(diǎn)是面向?qū)ο蟪绦蛟O(shè)計(jì)的基本知識(shí)。在Visual FoxPro中,面向?qū)ο蟮某绦蛟O(shè)計(jì)以對(duì)象及數(shù)據(jù)結(jié)構(gòu)為中心。因此對(duì)象是面向?qū)ο蟪绦蛟O(shè)計(jì)中程序運(yùn)行的最基本實(shí)體。
[答案] B
3 . 對(duì)象的______ 是指對(duì)象可以執(zhí)行的動(dòng)作或它的行為。
A.方法 B.屬性 C.事件 D.控件
[解析] 本題考查的知識(shí)點(diǎn)是對(duì)象的基本知識(shí)。在Visual FoxPro 中,每個(gè)對(duì)象都有自己的屬性和方法,也可以對(duì)一個(gè)被稱為事件的動(dòng)作進(jìn)行識(shí)別和響應(yīng)。對(duì)象的屬性一般用各種類型的數(shù)據(jù)來表示。對(duì)象的方法是指對(duì)象可以執(zhí)行的動(dòng)作或它的行為。掌握這這些知識(shí),便很容易選擇選項(xiàng)A 正確。選項(xiàng)D 錯(cuò)誤,沒有“對(duì)象的控件”。
[答案] A
6.容器和控件
Visual FoxPro 中的類一般可分為兩種類型:容器類和控件類。相應(yīng)地,可分別生成容器(對(duì)象)和控件(對(duì)象)。
控件:
是一個(gè)可以以圖形化的方式顯示出來并能與用戶進(jìn)行交互的對(duì)象??丶1环胖迷谝粋€(gè)容器里。
容器:
容器可以被認(rèn)為是一種特殊的控件,它能包容其他的控件或容器控件是一個(gè)可以以圖形化的方式顯示出來,并能與用戶進(jìn)行交互的對(duì)象,
【例】如果Form1中有一個(gè)命令按鈕組commandgroup1,該命令按鈕組有兩個(gè)命令按鈕:
command1 和command2,label1是表單form1上的一個(gè)標(biāo)簽控件。
如果要在命令按鈕command1的事件(如單擊事件)代碼中修改該按鈕的標(biāo)題可用下列命令:
this.caption=”確定”
如果要在命令按鈕command1的事件代碼中修改命令按鈕command2的標(biāo)題可用下列命令:
thisform.Commandgroup1.command2.caption="取消"
或者
this.parent.command2.caption="取消"
但不能寫成下列命令:
thisform.command2. caption="取消"
如果要在命令按鈕command1的事件代碼中修改表單的標(biāo)題可用下列命令:
This.Parent.parent.Caption=”測試窗口”
或者
thisform.caption=”測試窗口”
表容器層次中的對(duì)象引用屬性或關(guān)鍵字
屬性或關(guān)鍵字 引用
Parent 當(dāng)前對(duì)象的直接容器對(duì)象
This ..ó
當(dāng)前對(duì)象
ThisForm μ 當(dāng)前對(duì)象所在的表單
ThisFormSet μ±當(dāng)前對(duì)象所在的表單集
7.事件
事件是一種由系統(tǒng)預(yù)先定義而由用戶或系統(tǒng)發(fā)出的動(dòng)作。事件作用于對(duì)象,對(duì)象識(shí)別事件并作出相應(yīng)反應(yīng)
與方法集可以無限擴(kuò)展不同,事件集是固定的,用戶不能定義新的事件
1.關(guān)于Visual FoxPro基類的最小事件集Init的說明正確的是______
A.當(dāng)對(duì)象產(chǎn)生時(shí)引發(fā)
B.當(dāng)對(duì)象從內(nèi)存中釋放時(shí)引發(fā)
C.當(dāng)方法或事件代碼出現(xiàn)運(yùn)行錯(cuò)誤時(shí)引發(fā)
D.當(dāng)用戶用鼠標(biāo)單擊程序界面上的一個(gè)命令按鈕時(shí)引發(fā)
[解析] 本題考查的是關(guān)于事件的知識(shí)。只要讀者能很好地記住基本知識(shí),就能得出正確答案A。
[答案] A
2.Init 事件由______時(shí)引發(fā)。
A.對(duì)象從內(nèi)存中釋放 B.事件代碼出現(xiàn)錯(cuò)誤
C.方法代碼出現(xiàn)錯(cuò)誤 D.對(duì)象生成
[解析] 本題考查的知識(shí)點(diǎn)是Visual FoxPro 中的事件。Init 事件在對(duì)象生成時(shí)引發(fā)。
選項(xiàng)A 錯(cuò)誤,因?yàn)閺膬?nèi)存中釋放對(duì)象時(shí)引發(fā)的事件是Destroy。選項(xiàng)B 和C 錯(cuò)誤,因?yàn)镋rror 事件是由事件或方法代碼出錯(cuò)時(shí)引發(fā)。
[答案] D
3.在容器對(duì)象的嵌套層次中,事件的處理遵循獨(dú)立性原則,即______。
A.每個(gè)對(duì)象識(shí)別并處理其他的屬性
B.每個(gè)對(duì)象識(shí)別并處理屬于自己的方法
Init 創(chuàng)建對(duì)象時(shí)發(fā)生的事件。
從內(nèi)存中釋放對(duì)象時(shí)發(fā)生的事件。
鼠標(biāo)左鍵單擊對(duì)象時(shí)發(fā)生的事件。
Dbclick 鼠標(biāo)左鍵雙擊對(duì)象時(shí)發(fā)生的事件。
Error 當(dāng)方法或事件代碼出現(xiàn)運(yùn)行錯(cuò)誤時(shí)引發(fā)。
鼠標(biāo)右鍵單擊對(duì)象時(shí)發(fā)生的事件。
Click
Rightclick
C.每個(gè)對(duì)象識(shí)別并處理屬于自己的事件
D.每個(gè)對(duì)象識(shí)別并處理其他的事件
[解析] 本題考查的知識(shí)點(diǎn)是事件的基本知識(shí)。在容器對(duì)象的嵌套層次中,事件的處理遵循獨(dú)立性原則,意思是指每個(gè)對(duì)象識(shí)別并處理屬于自己的事件。
選項(xiàng)A 錯(cuò)誤,因?yàn)閷?duì)象并不會(huì)處理其他的屬性。選項(xiàng)B 錯(cuò)誤,因?yàn)閷?duì)象不是處理方法而是事件。選項(xiàng)D 錯(cuò)誤,因?yàn)槭录幚淼莫?dú)立性原則只處理并識(shí)別自己的事件,不是其他事件。
[答案] C
4.在Visual FoxPro 中,當(dāng)對(duì)象方法或事件代碼在運(yùn)行過程中產(chǎn)生錯(cuò)誤時(shí)將引發(fā)______事件。
A.Load B.Init
C.Destroy D.Error
[解析] 本題考查的知識(shí)點(diǎn)是事件的應(yīng)用。在visual FoxPro 中,當(dāng)對(duì)象方法或事件代碼在運(yùn)行過程中產(chǎn)生錯(cuò)誤時(shí)將引發(fā)Error 事件。
選項(xiàng)A 在表單對(duì)象建立之前引發(fā),即運(yùn)行表單時(shí),先引發(fā)表單的Load 事件,再引發(fā)表單的Init 事件。選項(xiàng)B 在對(duì)象建立時(shí)引發(fā)。選項(xiàng)C 在對(duì)象釋放時(shí)引發(fā)。選項(xiàng)D 當(dāng)對(duì)象方法或事件代碼在運(yùn)行過程中產(chǎn)生錯(cuò)誤時(shí)引發(fā)。
[答案] D