課件09版表單8學(xué)時(shí)_第1頁(yè)
課件09版表單8學(xué)時(shí)_第2頁(yè)
課件09版表單8學(xué)時(shí)_第3頁(yè)
課件09版表單8學(xué)時(shí)_第4頁(yè)
課件09版表單8學(xué)時(shí)_第5頁(yè)
已閱讀5頁(yè),還剩88頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

05VFP課件09版表單8學(xué)時(shí)8-1面向?qū)ο蟮母拍?-2創(chuàng)建表單8-3表單控件的使用8-4修飾表單8-5小結(jié)第8章表單及面向?qū)ο蟮某绦蛟O(shè)計(jì)8-1面向?qū)ο蟮母拍?/p>

8-1-1基本概念1.什么是面向?qū)ο蟮某绦蛟O(shè)計(jì)

面向?qū)ο蟪绦蛟O(shè)計(jì)是目前程序設(shè)計(jì)方法的主流,也是程序設(shè)計(jì)在思維和方法上的一次巨大進(jìn)步。面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)際上是在“組裝”程序,每個(gè)對(duì)象中的代碼對(duì)于許多編程人員來(lái)說(shuō)是透明的,編程人員更為關(guān)心的是功能和接口,也就是對(duì)象所具有的屬性和方法程序。面向?qū)ο蠓椒ㄅc結(jié)構(gòu)程序設(shè)計(jì)方法之區(qū)別在學(xué)習(xí)表單設(shè)計(jì)中,通過(guò)上機(jī)實(shí)踐對(duì)面對(duì)象的程序設(shè)計(jì)已有了一定的認(rèn)識(shí),下面以表所示:設(shè)方式方法設(shè)計(jì)方式數(shù)據(jù)顯示方式處理方式使用方式處理順序結(jié)構(gòu)程序面向?qū)ο蟪绦蜻^(guò)程性(Process)對(duì)向性(Object)顯示型隱藏型單一程序編碼對(duì)象模塊化一次使用可以重用定位方式非定位方式設(shè)計(jì)方式:指對(duì)問(wèn)題處理的程序設(shè)計(jì)方式。(1)、過(guò)程性的設(shè)計(jì)思想中?是針對(duì)問(wèn)題采用順序性的程序處理決問(wèn)題。?采用邏輯概念設(shè)計(jì)程序文件。?在解決問(wèn)題的過(guò)程中,常發(fā)生調(diào)用子過(guò)程程序文件。(2)、面向?qū)ο蟪绦蛟O(shè)計(jì)方法,是采用“對(duì)象”為設(shè)計(jì)思想中心。?不采用順序性處理方式,對(duì)問(wèn)題采用了對(duì)象本身的屬性與方法來(lái)解決問(wèn)題。?在處理問(wèn)題過(guò)程中,可以直接在對(duì)象中設(shè)計(jì)事件程序,直接觸發(fā)問(wèn)題。2.面向?qū)ο蟮某绦蛟O(shè)計(jì)的新特性

VFP6.0完全支持面向?qū)ο蟮脑O(shè)計(jì)方法,但同時(shí)又提供對(duì)面向過(guò)程的支持。從而為程序設(shè)計(jì)帶來(lái)巨大的方便。可以使用戶的程序具有以下的特點(diǎn):l代碼更為精練;l對(duì)象可以很容易地組裝成為應(yīng)用程序,而不必把太多的精力用于關(guān)心每一個(gè)對(duì)象的細(xì)節(jié);l代碼的維護(hù)和代碼的復(fù)用更為方便,大型程序的構(gòu)造更為簡(jiǎn)單。它通過(guò)抽象思維的方式,把日常生活中常見(jiàn)的問(wèn)題簡(jiǎn)化成人們易于理解的模型,然后再在這模型之間建立關(guān)系,從而最終形成一個(gè)完整的系統(tǒng)。3.基本術(shù)語(yǔ)

(1).對(duì)象(Object)

通常,對(duì)象是指各種大大小小的具體的客觀事物。在程序設(shè)計(jì)中,對(duì)象是私有數(shù)據(jù)和對(duì)這些數(shù)據(jù)進(jìn)行處理的操作(方法程序)相結(jié)合的程序單元(實(shí)體)。一個(gè)“表單”可以看作一個(gè)對(duì)象,“表單”中的一個(gè)“命令按鈕”,一張圖片也可以看作對(duì)象。

(2).屬性(Property)

屬性定義了對(duì)象所具有的數(shù)據(jù),它是對(duì)象所有特征數(shù)據(jù)的集合。每個(gè)對(duì)象都具有“屬性”。“屬性”值可以在設(shè)計(jì)階段設(shè)置,也可以在運(yùn)行階段更改,但有些“屬性”是只讀屬性,不可改變。

(3).方法程序(Method)

“方法程序”是指對(duì)象為實(shí)現(xiàn)一定功能而編寫(xiě)的代碼。

(4).事件(Event)

事件是用戶或系統(tǒng)的動(dòng)作所引發(fā)的事情,由用戶或者系統(tǒng)的操作而激活。VFP中的事件通常包括鍵盤(pán)“事件”和鼠標(biāo)“事件”,例如單擊鼠標(biāo)就發(fā)生了一個(gè)“Click”事件。為了響應(yīng)事件,可以為事件加入相應(yīng)的代碼,也可以執(zhí)行某個(gè)方法。

(5).類(Class)

類是一組具有相同特性的對(duì)象的抽象定義。類是具有相同或相似特征的對(duì)象的抽象,對(duì)象是類的具體的實(shí)例。類可以具有子類(Subclass)。

子類可以繼承父類所有的屬性和方法,也可以根據(jù)需要加入新屬性和方法。(6).類與對(duì)象運(yùn)算符

專門(mén)用于實(shí)現(xiàn)面向?qū)ο蟮某绦蛟O(shè)計(jì)。

“.”點(diǎn)運(yùn)算符,確定對(duì)象與類的關(guān)系,以及屬性、事件和方法與其對(duì)象的從屬關(guān)系。

“::”作用域運(yùn)算符,用于在子類中調(diào)用父類的方法。

8-1-2VFP中的類

1.類的概念

(1).類與對(duì)象

在面向?qū)ο蟪绦蛟O(shè)計(jì)中,類與對(duì)象都是應(yīng)用程序的組裝模塊。

類是已經(jīng)定義了的關(guān)于對(duì)象的特征和行為的模板。在表單控件工具欄中,每個(gè)控件按鈕都代表一個(gè)類,用其中某個(gè)按鈕在表單上創(chuàng)建的一個(gè)控件就是一個(gè)對(duì)象。從上可以看出:

類是對(duì)象的定義。類規(guī)定并提供了對(duì)象具有的屬性、事件和方法程序。

對(duì)象通過(guò)類來(lái)產(chǎn)生。對(duì)象是類的實(shí)例。

(2).基類(baseclass)

基類是VFP預(yù)先定義的類,在“新建類”對(duì)話框的“派生于”下拉列表中,包含了全部基類,例如表單(Form)、表單集(FormSet)等。基類可作為用戶定義類的基礎(chǔ)。用戶可從基類來(lái)創(chuàng)建新類,并增添自己需要的新功能。(3).子類(subclass)以某個(gè)類的定義為起點(diǎn)創(chuàng)建的新類稱為子類,前者稱為父類。例如從基類來(lái)創(chuàng)建新類時(shí),基類是父類,新類是子類。

新類將繼承父類的全部特征,包括對(duì)父類所做的任何修改。

2.類的特征

類是模板,它規(guī)定了各類對(duì)象的屬性、事件和方法程序。此外,類還具有類的封裝性、繼承性、多態(tài)性、抽象性四大特征。這些特征有利于提高代碼的可重用性和易維護(hù)性。(1)封裝特征

封裝指包含并隱藏對(duì)象信息,如內(nèi)部數(shù)據(jù)結(jié)構(gòu)、對(duì)象的方法程序和屬性代碼。

封裝隱藏了對(duì)象內(nèi)部的細(xì)節(jié),例如對(duì)一個(gè)命令按鈕設(shè)置Caption屬性時(shí),不必了解標(biāo)題字符串是如何存儲(chǔ)的。隱藏對(duì)象信息的優(yōu)點(diǎn)有:

有利于對(duì)復(fù)雜對(duì)象的管理。由于隱藏了對(duì)象內(nèi)部細(xì)節(jié),使用戶能集中精力來(lái)使用對(duì)象的特性。有利于程序的安全性。隱藏對(duì)象信息能防止代碼不慎受到破壞。

(2)繼承性特征

繼承性包括以下內(nèi)容:l

對(duì)象能自動(dòng)繼承創(chuàng)建它的類的功能。l

子類能自動(dòng)繼承父類的功能。l

對(duì)一個(gè)類的改動(dòng)能自動(dòng)反映到它的所有子類中。繼承性不只節(jié)省了用戶的時(shí)間和精力,同時(shí)也減少了維護(hù)代碼的難度。所以,繼承性是合理地進(jìn)行代碼維護(hù)的重要措施。(3)多態(tài)性指一些關(guān)聯(lián)的類包含同名的方法程序,但方法程序的內(nèi)容可以不同,具體調(diào)用在運(yùn)行時(shí)根據(jù)對(duì)象的類確定。(4)抽象性——指提取一個(gè)類或?qū)ο笈c眾不同的特征,而不對(duì)該類的所有信息進(jìn)行處理封裝。(5)子類特征

一個(gè)子類可以擁有其父類的全部功能,但也可以增加自己的屬性和方法,使它具有與父類不同的特殊性。

如果創(chuàng)建一個(gè)合適的子類,并在多處創(chuàng)建它的實(shí)例,就能使代碼得到重復(fù)使用,因此定義子類是減少代碼的途徑之一。3.VFP的基類

VFP中的基類又可以分為容器類和控件類。(1)容器類可以包含其他對(duì)象的類稱為容器類。容器對(duì)象可作為父對(duì)象,其包含的對(duì)象稱為子對(duì)象。例如,表單對(duì)象作為容器,可以包含命令按鈕、文本框、復(fù)選框等子對(duì)象。容器內(nèi)還可以包含容器類對(duì)象,例如表單容器內(nèi)包含表格、頁(yè)框、命令按鈕組等容器對(duì)象。而子容器中還可以包含命令按鈕、選擇按鈕等控件對(duì)象。

表8-1

VFP中的容器類

容器類名稱說(shuō)明列(Column)可以容納標(biāo)頭等對(duì)象,但不能容納表單、表單集、工具欄和計(jì)時(shí)器命令按鈕組(CommandButtonGroup)只能容納命令按鈕表單(Form)可以容納頁(yè)框、容器控件、容器或自定義對(duì)象表單集(FormSet)可以容納表單、工具欄表格(Grid)只能容納表格列選擇按鈕組(OptionButtonGroup)只能容納選項(xiàng)按鈕頁(yè)面(page)只能容納控件、容器和自定義對(duì)象頁(yè)框(PageFrame)只能容納頁(yè)框工具欄(ToolBar)可容納任意控件、頁(yè)框和容器

不允許包含其他對(duì)象的類稱作控件類,換句話說(shuō),控件對(duì)象不能作為父對(duì)象。例如,命令按鈕、選擇按鈕、復(fù)選框、文本框、標(biāo)簽等控件對(duì)象,就不能包含其他對(duì)象。

表8-2

VFP中的控件類

控件類名稱說(shuō)明復(fù)選框(CheckBox)創(chuàng)建一個(gè)復(fù)選框組合框(ComboBox)創(chuàng)建一個(gè)組合框命令按鈕(Command-Button)創(chuàng)建一個(gè)單一的命令按鈕編輯框(EditBox)創(chuàng)建一個(gè)編輯框圖像(Image)創(chuàng)建一個(gè)顯示.BMP文件的圖像控件標(biāo)簽(Label)創(chuàng)建一個(gè)用于顯示正文內(nèi)容的標(biāo)號(hào)線條(Line)創(chuàng)建一個(gè)能夠顯示水平線、垂直線或斜線的控件列表框(listBox)創(chuàng)建一個(gè)列表框選項(xiàng)按鈕(Option-Button)創(chuàng)建一個(gè)單一的選項(xiàng)按鈕形狀(Shape)創(chuàng)建一個(gè)顯示方框、圓或者橢圓的形狀控件微調(diào)(Spinner)創(chuàng)建一個(gè)微調(diào)鈕文本框(TextBox)創(chuàng)建一個(gè)文本框計(jì)時(shí)器(Timer)創(chuàng)建一個(gè)能夠規(guī)則地執(zhí)行代碼的計(jì)時(shí)器(2)控件類8-1-3VFP中的對(duì)象

1.基本概念

在OOP中,對(duì)象是構(gòu)成程序的基本單位和運(yùn)行實(shí)體。在面向?qū)ο蟪绦蛟O(shè)計(jì)中,現(xiàn)實(shí)世界的事物均可抽象為對(duì)象,例如表單上的命令按鈕是對(duì)象,表單本身也是對(duì)象。在VFP中,對(duì)象又可區(qū)分為控件和容器兩種。(1)控件:控件是表單上顯示數(shù)據(jù)和執(zhí)行操作的基本對(duì)象。(2)容器:容器是可以容納其它對(duì)象的對(duì)象,表8.3列出了VFP的容器及其可能包含的對(duì)象。

表單控件工具欄上的按鈕中,有的能創(chuàng)建控件,例如命令按鈕、文本框和列表框等按鈕;有的能創(chuàng)建容器,例如命令按鈕組、表格、頁(yè)框等按鈕。表8-3容器包含的對(duì)象

容器能包含的對(duì)象表單集(FormSet)表單、工具欄表單(Form)頁(yè)框、表格,任何控件頁(yè)框(PageFrame)頁(yè)面頁(yè)面(Page)表格,任何控件表格(Grid)表格列表格列(GridColumn)標(biāo)頭對(duì)象、除表單、表單集、工具欄、計(jì)時(shí)器和列對(duì)象以外的對(duì)象選項(xiàng)按鈕組(OptionButtonGroup)選項(xiàng)按鈕命令按鈕組(CommandButtonGroup)命令按鈕工具欄(ToolBar)任何控件,頁(yè)框,容器Container容器(Container)任何控件2.屬性

對(duì)象的屬性用來(lái)表示它的特征,以命令按鈕為例,其位置、大小、顏色、以及該按鈕面上是顯示文字還是圖形等狀態(tài),都可用屬性來(lái)表示。表8-4為對(duì)象設(shè)置屬性

屬性說(shuō)明Name命令按鈕名稱,編程時(shí)用Caption命令按鈕上顯示的文本FontName命令按鈕上文本的字體FontSize命令按鈕上文本的尺寸ForeColor命令按鈕上文本的顏色BackColor命令按鈕上文本的背景Top命令按鈕頂邊的位置Height命令按鈕的高度Width命令按鈕的寬度設(shè)置屬性語(yǔ)法:Parent.Object.Property=Value(即:父.對(duì)象.屬性=值)設(shè)置多個(gè)屬性語(yǔ)法:WITH…ENDWITH例如,在表單集的一個(gè)表單中,要設(shè)置表格列的多個(gè)屬性,可以使用如下語(yǔ)法結(jié)構(gòu):WITHfrsFormSet1.frmForm1.grdGrid1.grcColumn1.width=5.Resizable=.F..ForeColor=RGB(0,0,0).BackColor=RGB(255,255,255,).SelectOnEntry=.T.ENDWITH3.對(duì)象引用

在面向?qū)ο蟮某绦蛟O(shè)計(jì)中常常需要引用對(duì)象,或引用對(duì)象的屬性、事件與調(diào)用方法程序。(1).對(duì)象引用規(guī)則:

l

通常用以下引用關(guān)鍵字開(kāi)頭:THISFORMSET表示當(dāng)前表單集THISFORM表示當(dāng)前表單THIS表示當(dāng)前對(duì)象PARENT當(dāng)前對(duì)象的直接容器對(duì)象l

引用格式:引用關(guān)鍵字后跟一個(gè)點(diǎn)號(hào),再寫(xiě)出被引用對(duì)象或者對(duì)象的屬性,事件或方法程序。例如:THIS.Caption&&本對(duì)象(表單或控件)的Caption屬性THISFORM.Cls&&本表單的Cls方法程序,清除表單中的圖形和文本l

允許多級(jí)引用,但要逐級(jí)引用。例如:THISFORM.Command1.Caption&&本表單的Command1命令按鈕的Caption屬性THIS.Command1.Click&&本對(duì)象的Command1命令按鈕的Click事件(2)幾種常用的引用格式:

THISFORMSET.PropertyName|Event|Method|ObjectNameTHISFORM.PropertyName|Event|Method|ObjectNameTHIS.PorpertyName|Event|Method|ObjectNameObjectName.PropertyName|Event|Method|ObjectName其中PropertyName表示屬性名,Event表示事件,Method表示方法程序,ObjectName表示對(duì)象名。

(3)控件也可引用包含它的容器

格式為:

Control.Parent其中Control表示控件,Parent表示容器。例如,THIS.Parent.Command1.Caption,表示引用本對(duì)象的容器的Command1命令按鈕的Caption屬性。類是生成對(duì)象的模具,而對(duì)象是按類在應(yīng)用程序中生成的實(shí)例。VFP系統(tǒng)提供了30余個(gè)基類,并為每個(gè)基類規(guī)定了可使用的屬性、方法和事件。

“方法”(methods)是指對(duì)象為實(shí)現(xiàn)一定功能而編寫(xiě)的代碼,“方法”和對(duì)象相連。事件中的代碼可以認(rèn)為是基于事件的響應(yīng)方法。但“方法”可以獨(dú)立于事件的單獨(dú)代碼,必要時(shí)可以由其它方法或程序代碼進(jìn)行顯示的調(diào)用。 事件通常已經(jīng)預(yù)先由系統(tǒng)定義好了,不能隨便的擴(kuò)充,而方法和屬性卻可以無(wú)限的擴(kuò)展,事件的發(fā)生具有一定的順序,如:load和click,load在執(zhí)行表單時(shí)就激活了,而click在執(zhí)行表單后需單擊命令按鈕才激活。8-1-4VFP中的事件和事件過(guò)程1.事件

下表列舉了VFP的核心事件集,并適用于多數(shù)控件:事件激發(fā)后動(dòng)作表單或表單集被加載進(jìn)內(nèi)存。表單或表單集從內(nèi)存中釋放。對(duì)象被創(chuàng)建。對(duì)象從內(nèi)存中釋放。用戶用主鼠標(biāo)按鈕單擊對(duì)象。用戶用主鼠標(biāo)按鈕雙擊對(duì)象。用戶用輔(右)鼠標(biāo)按鈕單擊對(duì)象。對(duì)象接收焦點(diǎn),由用戶動(dòng)作(如按Tab鍵和單擊),或者在代碼中使用SetFocus方法引起。

LoadUnloadInitDestroyClickDblClickRightClickGotFocus3、為事件編寫(xiě)代碼當(dāng)事件發(fā)生時(shí),該事件的過(guò)程代碼將被執(zhí)行。系統(tǒng)響應(yīng)用戶動(dòng)作時(shí),事件將被自動(dòng)觸發(fā)。例如,當(dāng)用戶單擊一個(gè)控件時(shí),系統(tǒng)自動(dòng)執(zhí)行為Click事件編寫(xiě)的代碼。事件代碼也能由系統(tǒng)事件觸發(fā),例如在計(jì)時(shí)器控件中的Timer事件。2.事件驅(qū)動(dòng)方法事件一旦被觸發(fā),系統(tǒng)馬上就去執(zhí)行與該事件對(duì)應(yīng)的過(guò)程。待事件過(guò)程執(zhí)行完畢后,系統(tǒng)又處于等待某事件發(fā)生的狀態(tài),這種程序執(zhí)行方式明顯地不同于面向過(guò)程的程序設(shè)計(jì),稱為應(yīng)用程序的事件驅(qū)動(dòng)工作方式。4、方法程序(1)基本概念方法程序這個(gè)名詞,它與方法一詞的概念完全不同,后者僅含通常意義,前者則是一個(gè)關(guān)于對(duì)象的概念。方法程序是VFP為對(duì)象內(nèi)定的通用過(guò)程,能使對(duì)象執(zhí)行一個(gè)操作。方法程序過(guò)程代碼由VFP定義,對(duì)用戶是不可見(jiàn)的。

(2)方法程序的調(diào)用一旦對(duì)象被建立,就可以在應(yīng)用程序的任何一個(gè)地方調(diào)用此對(duì)象的方法。調(diào)用方法的語(yǔ)法如下:Parent.Object.Method(即:父.對(duì)象.方法)例:調(diào)用顯示一個(gè)表單的方法:frsFormset.frmForm1.Show方法:?文件菜單箋—新建—表單—新文件(或向?qū)В?項(xiàng)目管理器—文檔—表單—新建即可進(jìn)入表單設(shè)計(jì)器常使用表單向?qū)В‵ormWizard)或表單設(shè)計(jì)器(FormDesigner)來(lái)新建表單。1、使用向?qū)Ы⑿卤韱卧诒韱蜗驅(qū)?duì)話框中,按提示(與使用其它向?qū)б粯樱┮徊讲竭x擇完成。2、在表單設(shè)計(jì)器中用戶自已設(shè)計(jì)表單8-2創(chuàng)建表單表單又叫“窗體”,提供給用戶一個(gè)對(duì)數(shù)據(jù)查看、輸入的屏幕“界面”;提供了一個(gè)能適應(yīng)用戶事件和系統(tǒng)事件的強(qiáng)有力的對(duì)象集,使用戶能方便地完成信息管理任務(wù)。8-2-1使用向?qū)Ы⒈韱?、創(chuàng)建單表表單2、創(chuàng)建一對(duì)多表單8-2-2使用表單設(shè)計(jì)器創(chuàng)建表單1.創(chuàng)建快速表單2.使用表單設(shè)計(jì)器創(chuàng)建表單步驟:每個(gè)表單都有相應(yīng)的屬性、事件、方法。常用表單控制工具欄、調(diào)色板工具欄、布局工具欄、屬性窗口、數(shù)據(jù)環(huán)境等進(jìn)行設(shè)計(jì)。設(shè)計(jì)一個(gè)表單的步驟:1)創(chuàng)建表單并設(shè)置表單的屬性2)給表單添加適當(dāng)?shù)目丶?)設(shè)置控件的屬性4)編寫(xiě)事件代碼設(shè)置數(shù)據(jù)環(huán)境:8-2-3表單屬性選定對(duì)象查看類標(biāo)簽文本框編輯框命令按鈕命令按鈕組選項(xiàng)按鈕組復(fù)選框組合框列表框微調(diào)控件表格圖象計(jì)時(shí)器頁(yè)框Active控件綁定控件線條形狀容器分隔符超級(jí)鏈接生成器鎖定按鈕鎖定

可在設(shè)計(jì)期間或運(yùn)行期間操作VFP控件。VFP控件通用而強(qiáng)大,可以配置不同的控件來(lái)完成同樣的任務(wù)。8-3表單控件的使用8-3-1、表單控件1.控件的分類(1)常用控件表單設(shè)計(jì)器窗口的表單控件工具欄顯示的便是常用控件。這些常用控件的功能和使用方法,將在下面進(jìn)行詳細(xì)介紹(2)ActiveX控件ActiveX控件是OLE自定義控件,通常用于32位的開(kāi)發(fā)工具和平臺(tái),功能強(qiáng)大,應(yīng)用也較復(fù)雜。

(3)自定義控件用戶可以自己定義控件,可以選擇一個(gè)可視類庫(kù)作為控件添加到工具欄中。表單控件工具欄中各控件的功能。3.控件的使用方法

選定控件分組控件移動(dòng)控件改變控件大小刪除控件取消控件1.功能標(biāo)簽主要用于顯示固定的文本信息。2.常用屬性caption:指定標(biāo)簽的顯示文本。可以在設(shè)計(jì)時(shí)設(shè)置,也可以在程序運(yùn)時(shí)設(shè)置或修改。Forecolor:設(shè)置標(biāo)題的字體顏色。Backstyle:設(shè)置標(biāo)簽的背景是否透明,0透明,1不透明,默認(rèn)為不透明。name:標(biāo)簽對(duì)象的名稱,是程序中訪問(wèn)標(biāo)簽對(duì)象的標(biāo)識(shí)。Alignment:指定標(biāo)題控件中顯示的對(duì)齊方式。3.舉例:P1838-3-2標(biāo)簽(Label)控件1.功能:①用于顯示或接收單行文本信息(不設(shè)置ControlSource屬性),默認(rèn)輸入類型為字符型,最大長(zhǎng)度為256個(gè)字符。②用于顯示或編輯對(duì)應(yīng)變量或字段的值(設(shè)置ControlSource屬性為已有變量或字段名)。2.常用屬性ControlSource:設(shè)置文本框的數(shù)據(jù)來(lái)源。一般情況下,可以利用該屬性為文本框指定一個(gè)字段或內(nèi)存變量。8-3-3文本框(TextBox)控件Value:保存文本框的當(dāng)前內(nèi)容,如果沒(méi)有為ControlSource屬性指定數(shù)據(jù)源,可以通過(guò)該屬性訪問(wèn)文本框的內(nèi)容。它的初值決定文本框中值的類型。如果為ControlSource屬性指定了數(shù)據(jù)源,該屬性值與ControlSource屬性指定的變量或字段的值相同。PassWordChar:設(shè)置輸入口令時(shí)顯示的字符。Readonly:確定文本框是否為只讀,為“.T.”時(shí),文本框的值不可修改。

3.常用的事件過(guò)程

GetFocusEvent:獲得焦點(diǎn)后發(fā)生。例如:

THIS.SelStart=0THIS.SelLength=LEN(ALLTRIM(THIS.value)WhenEvent:獲得焦點(diǎn)前發(fā)生,返回邏輯值。例如:

IFTHIS.Value>500=MESSAGEBOX(“數(shù)據(jù)已經(jīng)很大,不允許再編輯”)ENDIFRETRUNTHIS.Value<=500

ValidEvent:失去焦點(diǎn)之前發(fā)生,常用于進(jìn)行數(shù)據(jù)合法性檢查,返回一個(gè)邏輯值,為假時(shí)不允許失去焦點(diǎn)。例:RETRUNTHIS.Value>=200andTHIS.Value<=300LostFocusEvent:控件失去焦點(diǎn)時(shí)發(fā)生的事件。此過(guò)程與Valid基本相同,但是不進(jìn)行合法性檢驗(yàn)。

4.文本框生成器

右單擊文本框,可通過(guò)快捷菜單打開(kāi)文本框生成器?!纠縿?chuàng)建一個(gè)如圖所示的登錄窗口,并將表單保存為FORM2。在“確定”按鈕的單擊事件中輸入如下代碼:Ifthisform.text1.value="user1“andthisform.text2.value="123456"doformmainform

elsemessagebox("密碼或用戶名錯(cuò)誤",0,"提示")endif在“取消”按鈕的單擊事件中輸入如下代碼:nAnswer=messagebox("你決定退出系統(tǒng)嗎?",4,"提示")DOCASECASEnAnswer=6thisform.releaseCASEnAnswer=7messagebox("請(qǐng)輸入用戶名和密碼",0,"提示")ENDCASE8-3-4編輯框(EditBox)控件1.功能

用于顯示或編輯多行文本信息。編輯框?qū)嶋H上是一個(gè)完整的簡(jiǎn)單字處理器,在編輯框中能夠選擇、剪切、粘貼以及復(fù)制正文,可以實(shí)現(xiàn)自動(dòng)換行,能夠有自己的垂直滾動(dòng)條。2.常用屬性ControlSource:設(shè)置編輯框的數(shù)據(jù)源,一般為數(shù)據(jù)表的備注字段。Value:保存編輯框中的內(nèi)容,可以通過(guò)該屬性來(lái)訪問(wèn)編輯框中的內(nèi)容。SelLength:返回用戶在文本輸入?yún)^(qū)中所選定字符的數(shù)目。SelText:返回用戶在編輯區(qū)內(nèi)選定的文本,如果沒(méi)有選定任何文本,則返回空串。Readonly:確定用戶是否能修改編輯框中的內(nèi)容。Scroolbars:指定編輯框是否具有滾動(dòng)條,當(dāng)屬性值為0時(shí),編輯框沒(méi)有滾動(dòng)條,當(dāng)屬性值為2(默認(rèn)值)時(shí),編輯框包含垂直滾動(dòng)條。3.舉例:P1858-3-5列表框(ListBox)控件

1.功能

列表框提供一組條目(數(shù)據(jù)項(xiàng)),用戶可以從中選擇一個(gè)或多個(gè)條目,一般情況下,列表框顯示其中的若干條目,用戶可以通過(guò)滾動(dòng)條瀏覽其他條目。2.常用屬性

列表可以一列,也可以多列,但只能有一列的數(shù)據(jù)和Value屬性的值捆綁。RowSourceType屬性與RowSource屬性:RowSourceType屬性指明列表框數(shù)據(jù)源的類型,RowSource屬性指定列表框的數(shù)據(jù)源,兩者常用的搭配如下表:RowSourceType屬性值RowSource屬性0-無(wú)在程序運(yùn)行時(shí),通過(guò)AddItem方法添加列表框條目,通過(guò)RemoveItem方法移去列表框條目無(wú)1-值列出在RowSource屬性中指定所有數(shù)據(jù)項(xiàng)可以是用逗號(hào)隔開(kāi)的若干數(shù)據(jù)項(xiàng)的集合,例如,在設(shè)計(jì)時(shí),在本屬性框中輸入:北京、上海、長(zhǎng)沙、武漢5-數(shù)組列出數(shù)組的所有元素使用一個(gè)已定義的數(shù)組名。6-字段列出一個(gè)字段的所有值字段名7-文件列出指定目錄的文件清單磁盤(pán)驅(qū)動(dòng)器或文件目錄8-結(jié)構(gòu)列出數(shù)據(jù)表的結(jié)構(gòu)表名List屬性:用以存取列表框中數(shù)據(jù)條目的字符串?dāng)?shù)組。例如,LIST[1]代表列表框中的第一行(第一個(gè)數(shù)據(jù)項(xiàng))。ListCount屬性:列表框中數(shù)據(jù)條目的數(shù)目ColumnCount屬性:指定列表框的列數(shù)Value屬性:返回列表框中被選中的條目ControlSource屬性:該屬性在列表框中的用法與在其他控件中的用法有所不同,在這里,用戶可以通過(guò)該屬性指定一個(gè)字段或變量用以保存用戶從列表框中選擇的結(jié)果Selected屬性:該屬性是一個(gè)邏輯型數(shù)組,第N個(gè)數(shù)組元素代表第N個(gè)數(shù)據(jù)項(xiàng)是否為選定狀態(tài)MultiSelect屬性:指定用戶能否在列表框控件內(nèi)進(jìn)行多重選定列表框的事件過(guò)程常用過(guò)程有ClickEvent,DbclickEvent,AddItem,RemoveItem列表框生成器在四個(gè)選項(xiàng)頁(yè)中分別選定列表項(xiàng)、樣式、布局和與Value綁定的列及選定值保存到何處?!纠苛斜砜虻膽?yīng)用:按下圖設(shè)計(jì)一個(gè)表單。要求表單運(yùn)行時(shí),LIST1列表框顯示STUD表的所有字段,單擊左箭頭按鈕時(shí),LIST1中選擇的字段加入到LIST2中。操作步驟:①按圖所示在表單中加入二個(gè)列表框、二個(gè)標(biāo)簽、二個(gè)命令按鈕。②在表單的INIT事件中加入如下代碼:thisform.list1.value=0thisform.list2.value=0opendatabasestudentusestudfori=1tofcount()thisform.list1.additem(fields(i))nextclosedatabase③在左箭頭按鈕(COMMAND1)的CLICK事件中加入如下代碼:thisform.list2.addlistitem(thisform.list1.listitem[thisform.list1.value])thisform.list1.removeitem[thisform.list1.value]右箭頭按鈕(COMMAND2)的CLICK事件代碼請(qǐng)大家自己編寫(xiě)。8-3-6命令按鈕(CommandButton)控件1.功能命令按鈕形象直觀,所以命令按鈕典型地用來(lái)啟動(dòng)某個(gè)事件代碼、完成特定功能,如關(guān)閉表單、移動(dòng)記錄指針、打印報(bào)表等。2.常用屬性

Default:命令按鈕的Default屬性默認(rèn)值為.F.,如果該屬性設(shè)置為.T.,在該按鈕所在的表單激活的情況下,按Enter,可以激活該按鈕,并執(zhí)行該按鈕的Click事件代碼。一個(gè)表單只能有一個(gè)按鈕的Default屬性為真。Cancel:命令按鈕的Cancel屬性默認(rèn)值為.F.,如果設(shè)置為.T.,在該按鈕所在的表單激活的情況下,按Esc鍵可以激活該按鈕,并執(zhí)行該按鈕的Click事件代碼。一個(gè)表單只能有一個(gè)按鈕的Cancel屬性為真。Caption:設(shè)置按鈕的標(biāo)題。Enable:確定按鈕是否有效,如果按鈕的屬Enable為.F.,單擊該按鈕不會(huì)引發(fā)該按鈕的單擊事件。對(duì)命令按鈕的使用最重要的是編寫(xiě)Click事件代碼。8-3-7表格(Grid)控件1.功能:表格控件用于瀏覽或編輯多行多列數(shù)據(jù)。2.常用屬性RecordSourceType和RecordSource屬性:RecordSourceType指明表格數(shù)據(jù)源的類型,RecordSource屬性指定數(shù)據(jù)的來(lái)源,它們?nèi)≈导昂x如表所示。

表格控件用于瀏覽或編輯多行多列數(shù)據(jù)。表格提供了一個(gè)全屏幕輸入輸出數(shù)據(jù)表記錄的方式,它也是一個(gè)以行列的方式顯示數(shù)據(jù)的對(duì)象容器控件。一個(gè)表格控件包含一些列(Column)控件,每個(gè)列控件能夠容納一個(gè)標(biāo)頭對(duì)象(Header)和文本框(Text)。一般來(lái)說(shuō)與一定的表,視圖或查詢聯(lián)系在一起,屬于一種數(shù)據(jù)綁定型控件。常用于顯示一對(duì)多關(guān)系中的子表信息RecordSourceType屬性值RecordSource屬性0-表:數(shù)據(jù)來(lái)源由RecordSource屬性指定的表,該表能被自動(dòng)打開(kāi)表名1-別名數(shù)據(jù)來(lái)源于己打開(kāi)的表表的別名2-提示運(yùn)行時(shí),由用戶根據(jù)提示選擇表格數(shù)據(jù)源

3-查詢數(shù)據(jù)來(lái)源于查詢查詢文件名4-SQL語(yǔ)句數(shù)據(jù)來(lái)源于SQL語(yǔ)句SQL語(yǔ)句ColumnCount:指定表格的列數(shù)LinkMaster:用于指定表格控件中所顯示的子表的父表名稱ChildOrader:指定子表的索引RelationalExpr:確定基于主表字段的關(guān)聯(lián)表達(dá)式AllowAddNew:為真,運(yùn)行時(shí)允許添加新記錄,否則不能添加新記錄AllowRowSizing:為真,運(yùn)行時(shí)用戶可改變行高。AllowHeaderSizing:為真,運(yùn)行時(shí)用戶可改變列寬。常用的列屬性ControlSource:指定在列中顯示的數(shù)據(jù)源.CurrentControl:指定列對(duì)象中顯示和接收數(shù)據(jù)的控件.Sparse:用于確定CurrentControl屬性影響列中的所有單元格還是只影響活動(dòng)單元格.注意:設(shè)計(jì)時(shí)要設(shè)置列對(duì)象的屬性,首先得選擇列對(duì)象,選擇列對(duì)象有兩種方法:①?gòu)膶傩源翱诘膶?duì)象列表中選擇相應(yīng)列,②右擊表格,在彈出的快捷菜單中選擇【編輯】命令,這時(shí)表格進(jìn)入編輯狀態(tài)(表格的周圍有一個(gè)粗框),用戶可用鼠標(biāo)單擊選擇列對(duì)象。常用的標(biāo)頭(Header)屬性列標(biāo)頭也是一個(gè)對(duì)象,有它自己的屬性、方法和事件,設(shè)計(jì)時(shí)要設(shè)置標(biāo)頭對(duì)象的屬性,首先得選擇標(biāo)頭對(duì)象,選擇標(biāo)頭對(duì)象的方法與選擇列對(duì)象的方法類似。Caption屬性:指定標(biāo)頭對(duì)象的標(biāo)題文本,顯示于列頂部。默認(rèn)為對(duì)應(yīng)字段的字段名。Alignment屬性:指定標(biāo)題文本在對(duì)象中顯示的對(duì)齊方式。調(diào)整表格的行高和列寬一旦指定了表格的列的具體數(shù)目,就可以有兩種方法來(lái)調(diào)整表格的行高和列寬。①設(shè)置表格的HeaderHeight和RowHeight屬性調(diào)整行高;設(shè)置列對(duì)象的Width屬性調(diào)整列寬。②讓表格處于編輯狀態(tài)下,將鼠標(biāo)指針置于表格兩列的標(biāo)頭之間,這時(shí),鼠標(biāo)指針變?yōu)樗诫p箭頭的形狀,拖動(dòng)鼠標(biāo),調(diào)整列至所需要的寬度;將鼠標(biāo)置于表格左側(cè)的第一個(gè)按鈕和第二個(gè)按鈕之間,這時(shí),鼠標(biāo)指針變成垂直雙箭頭的形狀,拖動(dòng)鼠標(biāo),調(diào)整行至所需要的高度。使用表格生成器設(shè)計(jì)表格

用鼠標(biāo)左鍵右擊表格,在彈出的快捷菜單中選擇【生成器】命令,打開(kāi)“表格生成器”對(duì)話框,如圖所示?!氨砀耥?xiàng)”選項(xiàng)卡:用于設(shè)置表格內(nèi)顯示字段“樣式”選項(xiàng)卡:指定表格的樣式“布局”選項(xiàng)卡:調(diào)整行高、列寬;設(shè)置列標(biāo)題;選擇控件類型“關(guān)系”選項(xiàng)卡:設(shè)置一個(gè)一對(duì)多關(guān)系,指明父表中的關(guān)鍵字段與子表中的相關(guān)索引在表格中嵌入控件

除了在表格中顯示字段數(shù)據(jù),還可以在表格的列中嵌入控件,這樣就為用戶提供了可以嵌入的文本框、復(fù)選框、下拉列表框、微調(diào)按鈕和其他控件。例如,如果表中有一個(gè)邏輯字段,當(dāng)運(yùn)行該表單時(shí),通過(guò)辨認(rèn)復(fù)選框可以判定哪個(gè)記錄值是.T.和哪個(gè)記錄值是.F.。修改這些值只需設(shè)置或清除復(fù)選框即可??梢栽凇氨韱卧O(shè)計(jì)器”中交互地向表格列中添加控件,也可以通過(guò)編寫(xiě)代碼在運(yùn)行時(shí)添加控件。3、舉例:P1881.功能

用于在表單上創(chuàng)建一組命令按鈕。2.常用屬性

ButtonCount:設(shè)置命令按鈕組中命令按鈕的個(gè)數(shù)。Enabled:指定命令按鈕或命令按鈕組是否有效。如果同時(shí)設(shè)置了命令按鈕組和命令按鈕組中某個(gè)命令按鈕Enabled的屬性,且它們的屬性不相同,則以命令按鈕組的Enabled的屬性值為準(zhǔn)。3.舉例:P1898-3-7命令按鈕組(CommandGroup)控件8-3-9計(jì)時(shí)器1.功能用于在表單中創(chuàng)建一計(jì)時(shí)器,計(jì)時(shí)器會(huì)以一定的時(shí)間間隔執(zhí)行事先編寫(xiě)的事件代碼。在Timer事件中,放人需要重復(fù)執(zhí)行的事件代碼,如檢索系統(tǒng)時(shí)鐘、定時(shí)完成一些后處理等。在表單設(shè)計(jì)器中,計(jì)時(shí)器是可見(jiàn)的,便于設(shè)計(jì)者選擇該控件,設(shè)置其屬性和編寫(xiě)事件過(guò)程。而運(yùn)行表單后,計(jì)時(shí)器就不可見(jiàn)了,因此它的大小和位置不會(huì)對(duì)表單的界面有任何影響。2.常用屬性(1)Enabled:設(shè)置計(jì)時(shí)器是否工作。該屬性值為.T.時(shí),計(jì)時(shí)器開(kāi)始工作,否則,計(jì)時(shí)器將被掛起。另外,該屬性也可以通過(guò)觸發(fā)其他控件的事件來(lái)設(shè)置。(2)Interval:設(shè)置兩次計(jì)時(shí)器事件(Timer事件)的時(shí)間間隔,單位為毫秒。該屬性的值不要設(shè)置得太小,否則占用處理器的時(shí)間太多,會(huì)降低整個(gè)程序的性能。3.舉例:P1901.功能

0LE綁定控件常用來(lái)在表單上顯示與通用型字段有關(guān)的OLE對(duì)象,顯示內(nèi)容隨著記錄的變化而變化。因此,它與數(shù)據(jù)表中的通用型字段相連接。2.常用屬性

(1)CortrolSource:設(shè)置與數(shù)據(jù)表中某一通用型字段相連接。(2)Stretch:設(shè)置OLE對(duì)象與顯示區(qū)域的大小比例。它包括三種情況:0——剪裁(默認(rèn)值):超過(guò)顯示區(qū)域部分的圖像被剪去。1——等比填充:OLE對(duì)象等比例放大或縮小顯示。2——變比填充:以顯示區(qū)域?yàn)榍疤?,顯示整個(gè)0LE對(duì)象。3.舉例:P1918-3-10OLE綁定控件1.功能圖像控件用于在表單上添加一個(gè).bmp圖像文件所包含的圖片,以美化表單界面的設(shè)計(jì),但該圖片不能直接修改。2.常用屬性(1)Picture:指定該控件要顯示的.bmp圖像文件。(2)BorderStvle:選擇是否顯示邊框,默認(rèn)狀態(tài)為無(wú)邊框。(3)Stretch:設(shè)置圖像的填充方式,其中:0—剪裁:系統(tǒng)會(huì)自動(dòng)地剪裁圖像的大小,可能會(huì)導(dǎo)致圖像無(wú)法全部顯示出來(lái),該選項(xiàng)是默認(rèn)值。l—變比填充:按原圖像的比例進(jìn)行縮放,在不改變圖像原來(lái)比例的條件下,根據(jù)控件的大小自動(dòng)調(diào)整圖像,使其盡量填滿控件。2—變比填充:根據(jù)控件的大小,自動(dòng)調(diào)整圖像,但其為了填滿控件,也許無(wú)法保留圖像原有的比例從而使圖像失真。

1.舉例:P1928-3-11圖像1.復(fù)選框(CheckBox)控件1).復(fù)選框的功能

用于標(biāo)識(shí)一個(gè)兩值狀態(tài),如真(.t.)或假(.f.)。當(dāng)處于“真”狀態(tài)時(shí),復(fù)選框內(nèi)顯示一個(gè)對(duì)勾,當(dāng)處于“假”狀態(tài)時(shí)復(fù)選框內(nèi)為空白。2).復(fù)選框常用屬性屬性值說(shuō)明0或.F.(默認(rèn)值),未被選中1或.T.被選中>=2或null不確定,只在代碼中有效Value:用來(lái)指明復(fù)選框的當(dāng)前狀態(tài),如下表ControlSource屬性:用于指定復(fù)選框的數(shù)據(jù)源補(bǔ)充控件2.選項(xiàng)組(OptionGroup)控件1).選項(xiàng)組控件的功能

選項(xiàng)組又稱為選項(xiàng)按鈕組,是包含選項(xiàng)按鈕的一種容器。一個(gè)選項(xiàng)組中往往包含若干個(gè)選項(xiàng)按鈕,但用戶只能從中選擇一個(gè)按鈕。當(dāng)用戶單擊某個(gè)選項(xiàng)按鈕時(shí),該按鈕即成為被選中狀態(tài),而選項(xiàng)組中的其他選項(xiàng)按鈕,不管原來(lái)是什么狀態(tài),都變?yōu)槲催x中狀態(tài),被選中的選項(xiàng)按鈕中會(huì)顯示一個(gè)圓點(diǎn)。2).選項(xiàng)組常用屬性ButtonCount:指定選項(xiàng)組中選項(xiàng)按鈕的數(shù)目。Value:用于指定選項(xiàng)組中哪個(gè)選項(xiàng)按鈕被選中。Buttons:用于存取選項(xiàng)組中每個(gè)選項(xiàng)的數(shù)組。

ControlSource:指定選項(xiàng)組數(shù)據(jù)源。將該屬性值設(shè)為一個(gè)字符型變量或字段變量名,就可以把選定的選項(xiàng)文字自動(dòng)存入變量,變量的值也會(huì)使文字相同的選項(xiàng)自動(dòng)被選中。如:把表中“性別”字段的取值——男、女設(shè)為選項(xiàng)鈕的Caption,把選項(xiàng)按鈕組的ControlSource設(shè)為“性別”,就可以為性別字段輸入輸出?!纠?】:設(shè)計(jì)一個(gè)課程查詢表單,在表單中使用單選按鈕控件和按鈕、文本框。打開(kāi)表單設(shè)計(jì)器,使用表單控件工具欄、屬性窗口、數(shù)據(jù)環(huán)境設(shè)計(jì)器,進(jìn)行以下操作:(1)設(shè)計(jì)、定義表單屬性:Caption=課程查詢Name=Form1Visable=.T.(2)在表單中添加一個(gè)選擇按鈕組,在其中用兩個(gè)選擇按鈕:AutoSize=.T.ControlSize=無(wú)Name=OptionGroup1Visable=.T.l“課程號(hào)”按鈕Caption=課程號(hào)Name=Opti1AutoSize=.T.ClickEvent=用戶自定義過(guò)程Style=0-標(biāo)準(zhǔn)Value=.T.l“課程名”按鈕Caption=課程名Name=Opti2Autosize=.f.ClickEvent=用戶自定義過(guò)程Style=0-標(biāo)準(zhǔn)Value=.f.(3)添加一個(gè)文本框用來(lái)輸入課程號(hào):Name=Text1AutoSize=.t.ClickEvent=用戶自定義過(guò)程Style=0-標(biāo)準(zhǔn)Value=1FontSize=8Format=1InitEvent=用戶自定義過(guò)程InputMask=無(wú)MaxLenth=7Seconds=2-默認(rèn)SelectOnEntry=.T.TabIndex=0(4)添加一個(gè)文本框用來(lái)輸入課程名稱:NAME=Text2Alignment=0Autosize=.t.ClickEvent=用戶自定義過(guò)程ControlSource=無(wú)DateFormat=14-漢語(yǔ)Enabled=.T.HideSelection=.F.Style=0-標(biāo)準(zhǔn)Value=FontSize=10Format=KInitEvent=用戶自定義過(guò)程InputMask=無(wú)MaxLenth=8PasswordChar=無(wú)ReadOnly=.F.Seconds=2-默認(rèn)SelectOnEntry=.T.Style=0TabIndex=4Visable=.T.(5)添加“開(kāi)始”命令按鈕:NAME=Command1AutoSize=.F.ClickEve

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論