第6章表單設(shè)計(jì)與應(yīng)用_第1頁(yè)
第6章表單設(shè)計(jì)與應(yīng)用_第2頁(yè)
第6章表單設(shè)計(jì)與應(yīng)用_第3頁(yè)
第6章表單設(shè)計(jì)與應(yīng)用_第4頁(yè)
第6章表單設(shè)計(jì)與應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩86頁(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)介

第6章表單設(shè)計(jì)與應(yīng)用

江蘇大學(xué)

楊永梅

16.1面向?qū)ο竺嫦驅(qū)ο蟪绦蛟O(shè)計(jì)(OOP)基于問(wèn)題對(duì)象的自底向上的功能綜合。面向?qū)ο蟮姆椒▽⑦^(guò)程和信息組合成單元(類和對(duì)象)。這些單元中的信息通常是隱藏的,需要通過(guò)界面或一系列的數(shù)據(jù)才能顯現(xiàn)出來(lái)。面向?qū)ο蟮某绦蛟O(shè)計(jì)是通過(guò)對(duì)類、子類和對(duì)象等的設(shè)計(jì)來(lái)實(shí)現(xiàn)的。具體見(jiàn)教材P.1722對(duì)象(Object)對(duì)象是類的一個(gè)實(shí)例,包括了數(shù)據(jù)和過(guò)程(操作),是動(dòng)態(tài)概念。VFP中應(yīng)用程序?qū)ο笾饕副韱?、表單集及各種控件。對(duì)象根據(jù)所基于的類的性質(zhì),也可以分為容器對(duì)象和控件對(duì)象。程序由一個(gè)或多個(gè)類組成,在程序運(yùn)行時(shí)需要?jiǎng)?chuàng)建該類的各個(gè)對(duì)象。每個(gè)對(duì)象都有屬性以及與之相關(guān)的事件和方法。具體見(jiàn)教材P.1723類(Class)類定義了對(duì)象特征以及對(duì)象外觀和行為的模板。類刻劃了一組具有共同特性的對(duì)象。四大特征:繼承性:在類、子類和對(duì)象之間自動(dòng)共享函數(shù)和數(shù)據(jù)的一種機(jī)制。多態(tài)性:允許相關(guān)的對(duì)象對(duì)同一消息做出不同反應(yīng)。封裝性:在對(duì)象內(nèi)部,數(shù)據(jù)和函數(shù)是不可分割的,只有通過(guò)對(duì)象自身的函數(shù)才能訪問(wèn)數(shù)據(jù)。抽象性:允許用戶忽略實(shí)施細(xì)節(jié),而從更高的等級(jí)上考慮一個(gè)實(shí)體。具體見(jiàn)教材P.1724屬性(Property)屬性(Property

):定義了對(duì)象的特征或某一方面的行為。例如,表單的MaxButton屬性決定了表單是否具有“最大化”按鈕。每個(gè)對(duì)象都有屬性。對(duì)象的某些屬性可以在設(shè)計(jì)階段,也可以在運(yùn)行階段設(shè)置,某些屬性則是不能被設(shè)置的,是只讀的。屬性由對(duì)象所基于的類決定。5例:下面往表單中加入三個(gè)命令按鈕(CommandBuotton),其中兩個(gè)開(kāi)始時(shí)是隱藏的,通過(guò)單擊第一個(gè)命令按鈕顯示它們,再利用它們來(lái)移動(dòng)表單和退出表單6例:下面往表單中加入三個(gè)命令按鈕(CommandBuotton),其中兩個(gè)開(kāi)始時(shí)是隱藏的,通過(guò)單擊第一個(gè)命令按鈕顯示它們,再利用它們來(lái)移動(dòng)表單和退出表單。按下工具欄中“CommandBuotton”鈕,逐個(gè)加入三個(gè)命令按鈕。選擇“from1”,事件form1.Init(表單初始化)的代碼:thisform.caption="命令按鈕設(shè)計(jì)實(shí)例"mand1.caption="單擊此按鈕顯示其它按鈕"mand2.caption="移動(dòng)本表單"mand3.caption="退出"mand2.visible=.F.&&設(shè)置command2按鈕運(yùn)行時(shí)不可見(jiàn)mand3.visible=.F.&&設(shè)置command3按鈕運(yùn)行時(shí)不可見(jiàn)選擇“command1”,事件command1.click(單擊)的代碼:mand2.visible=.T.&&顯示command2按鈕mand3.visible=.T.&&顯示command3按鈕this.enabled=.F.&&設(shè)置自身command1按鈕不能用選擇“command2”,事件command2.click(單擊)的代碼:thisform.left=thisform.left+10&&點(diǎn)擊鼠標(biāo)使表單向右移動(dòng)選擇“command3”,事件command3.click(單擊)的代碼:thisform.release&&關(guān)閉此表單7VFP中類的層次基類:系統(tǒng)本身所提供的類。子類:引用VFP基類或其他子類建立的新類。類庫(kù):用于存放子類的庫(kù)文件。(.VCX/.VCT)類庫(kù)VFP基類派生子類子類子類86.2.1基類(BASSCLASS)表8-1

VFP6.0的基類(29個(gè))

具體見(jiàn)教材P.1749VFP基類的最小屬性集Class:類名,該類屬于何種類型。BaseClass:基類名,該類由何種基類派生而來(lái)ClassLibray:類庫(kù)名,該類屬于哪種類庫(kù)文件ParentClass:父類名,對(duì)象所基于的類(該類的父類),若該直接由VFP基類派生而來(lái),則ParentClass屬性值與BaseClass屬性值相同。具體見(jiàn)教材P.174106.2.2VFP的容器與控件具體見(jiàn)教材P.174116.2.2容器與控件VFP的基類有兩種:容器類和控件類。容器類:包容其他類的基類。將容器類的對(duì)象加入表單后,無(wú)論在設(shè)計(jì)時(shí)還是在運(yùn)行時(shí),均可以將該容器類的對(duì)象作為一個(gè)整體進(jìn)行操作,也可以分別對(duì)其包容的對(duì)象處理。(表6.3)控件類:

可以包容在容器類中的基類。

具體見(jiàn)教材P.17612容器對(duì)象和控件對(duì)象控件對(duì)象是一個(gè)可以以圖形化的方式顯示并能與用戶進(jìn)行交互的對(duì)象。控件通常被放置在一個(gè)容器內(nèi)。容器對(duì)象是它能包容其他的控件或容器。不同的容器所能包容的對(duì)象類型是不同的。對(duì)象的嵌套層次關(guān)系是包容與被包容的關(guān)系。類層次指的是繼承與被繼承的關(guān)系13引用對(duì)象必須清楚對(duì)象的容器層次關(guān)系和對(duì)象的名(name屬性)。各個(gè)對(duì)象之間、對(duì)象與屬性之間用“·”進(jìn)行分隔。絕對(duì)引用:從容器的最高層次引用對(duì)象,給出對(duì)象的絕對(duì)地址。

如:Formset1.Form1.Command1相對(duì)引用:在容器層次中相對(duì)于某個(gè)容器的引用。通常運(yùn)用于某個(gè)對(duì)象的事件處理代碼或方法程序代碼中。

如:This.Parent.Command214VFP中“相對(duì)引用”對(duì)象時(shí)所用的關(guān)鍵字關(guān)鍵字:只能在方法程序或事件處理代碼中使用。Parent:當(dāng)前對(duì)象的直接容器。THIS:當(dāng)前對(duì)象。THISFORM:當(dāng)前對(duì)象所在的表單。THISFORMSET:當(dāng)前對(duì)象所在的表單集。系統(tǒng)變量_SCREEN表示屏幕對(duì)象。具體見(jiàn)教材P.17615事件(Event)事件(Event)是由對(duì)象可識(shí)別的一個(gè)動(dòng)作。用戶不能自定義事件,事件集合是固定的,不能進(jìn)行擴(kuò)充。一般由用戶或系統(tǒng)激活(計(jì)時(shí)器),可編寫(xiě)代碼來(lái)響應(yīng)事件。(VFP系統(tǒng)提供的類叫基類)基類的最小事件集:Init:當(dāng)對(duì)象創(chuàng)建的時(shí)候激活。Destroy:當(dāng)對(duì)象從內(nèi)存中釋放時(shí)激活。Error:當(dāng)事件或方法程序中出現(xiàn)錯(cuò)誤時(shí)激活。具體見(jiàn)教材P.17716176.4表單設(shè)計(jì)器表單文件:.SCX/.SCT表單向?qū)?FromWizard)表單向?qū)В簽閱蝹€(gè)表創(chuàng)建操作數(shù)據(jù)的表單。一對(duì)多表單向?qū)В簽閮蓚€(gè)相關(guān)表創(chuàng)建操作數(shù)據(jù)的表單。

兩個(gè)表之間一定要存在關(guān)系,生成的表單中的記錄定位按鈕只作用于父表,子表記錄可通過(guò)窗口操作控制。表單設(shè)計(jì)器快速表單編程方法具體見(jiàn)教材P.18118表單設(shè)計(jì)器使用“表單設(shè)計(jì)器”能夠可視化地創(chuàng)建、修改表單和表單集。CREATE/MODIFYFORM命令或界面方式打開(kāi)。CREATEFORMxs_form.scxMODIFYFORMxs_form.scx表單設(shè)計(jì)器窗口具體見(jiàn)教材181196.4.1表單設(shè)計(jì)器環(huán)境--“屬性”窗口在“屬性”窗口中設(shè)置屬性,屬性值更改后以粗體顯示。一般步驟:選定對(duì)象在“屬性”窗口中選擇屬性在“屬性”設(shè)置框中設(shè)置屬性值或利用函數(shù)按鈕設(shè)置。注意點(diǎn):部分屬性值是只讀的。(斜體顯示)字符型屬性值不必用引號(hào)括起來(lái)。若用表達(dá)式賦值,則要在表達(dá)式前加上“=”。技巧:可以為一組對(duì)象設(shè)置同一屬性值。206.4.2控件的操作與布局修改表單布局選擇、移動(dòng)、復(fù)制、刪除容器對(duì)象的選擇表格、命令按鈕組、選項(xiàng)按鈕組、頁(yè)框等容器類控件中的子控件216.4.3數(shù)據(jù)環(huán)境表單(集)的數(shù)據(jù)環(huán)境包括了與表單交互作用的表和視圖,以及表單要求的表之間的關(guān)系。數(shù)據(jù)環(huán)境是表單的一部分,并沒(méi)有自己獨(dú)立的存儲(chǔ)空間。引入數(shù)據(jù)環(huán)境的目的:打開(kāi)或運(yùn)行表單時(shí)它自動(dòng)地打開(kāi)表單所基于的表或視圖;將表單屬性窗口中的ControlSource屬性與數(shù)據(jù)環(huán)境中的所有字段相連;關(guān)閉或釋放表單時(shí)自動(dòng)地關(guān)閉表和視圖。在創(chuàng)建表單時(shí),首先要設(shè)置表單的數(shù)據(jù)環(huán)境,以確定表單所用到的表和視圖。具體見(jiàn)教材P.185226.4.3數(shù)據(jù)環(huán)境數(shù)據(jù)環(huán)境設(shè)計(jì)器向數(shù)據(jù)環(huán)境中添加表或視圖從數(shù)據(jù)環(huán)境中移去表或視圖在數(shù)據(jù)環(huán)境中設(shè)置關(guān)系如果添加進(jìn)數(shù)據(jù)環(huán)境設(shè)計(jì)器的表有永久關(guān)系,這些關(guān)系將自動(dòng)地加到數(shù)據(jù)環(huán)境中;如果沒(méi)有關(guān)系,可以在數(shù)據(jù)環(huán)境中設(shè)置這些關(guān)系。(拖動(dòng)字段即可)

23246.5表單屬性和方法Name:指定對(duì)象的名字Caption:標(biāo)題,指定對(duì)象的標(biāo)題的文本,最多256個(gè)字符。BackStyle:設(shè)置對(duì)象背景是否透明。AutoSize:設(shè)置是否可以自動(dòng)地調(diào)整對(duì)象大小。ForeColor:設(shè)置對(duì)象的前景色BackColor:設(shè)置對(duì)象的背景色對(duì)象的name屬性,只有它才能代表對(duì)象,它與用戶在表單設(shè)計(jì)器中對(duì)象顯示的內(nèi)容(caption屬性)是不同的。在引用對(duì)象時(shí),用戶用到的是對(duì)象的名字,即Name屬性具體見(jiàn)教材P.18725常用屬性Height:設(shè)置對(duì)象的高度Left:設(shè)置對(duì)象的左邊緣位置Top:設(shè)置對(duì)象的上邊緣位置Width:設(shè)置對(duì)象的寬度FontName:設(shè)置對(duì)象的字體Visuble:設(shè)置對(duì)象是否可見(jiàn)Enable:設(shè)置對(duì)象是否可用補(bǔ)充26表單的常用屬性AlwaysOnTop:表單是否總處在其他打開(kāi)窗口之上。AutoCenter:初始化時(shí)自動(dòng)居中。BackColor:表單窗口的顏色。BorderStyle:表單的邊框類型。Caption:標(biāo)題。Closable:能否通過(guò)關(guān)閉按鈕或控制菜單關(guān)閉。ControlBox:是否顯示控制菜單。DataSession:控制表單(集)中的表是在當(dāng)前工作期打開(kāi)(1)還是私有工作期打開(kāi)(2)。補(bǔ)充27表單的常用屬性MaxButton:是否有最大化按鈕。MinButton:是否有最小化按鈕。Movable:控制表單能否被拖動(dòng)。Name:對(duì)象的名稱。ScaleMode:度量單位。WindowState:控制表單最大化(2)、最小化(1)還是正常態(tài)。WindowType:控制表單是模式的還是非模式的。模式表單:用戶必須先關(guān)閉此表單才能訪問(wèn)應(yīng)用程序中的其他界面。具體見(jiàn)教材P.19928設(shè)置對(duì)象的屬性每個(gè)對(duì)象有許多屬性。但有一些屬性是只讀的(斜體字)設(shè)計(jì)時(shí)設(shè)置屬性值:即在“屬性窗口”中設(shè)置對(duì)象屬性。在表單中先加入一些控件,選中某一控件。被選中對(duì)象的屬性被分為四部分:數(shù)據(jù):這些屬性存儲(chǔ)關(guān)于對(duì)象的數(shù)據(jù)環(huán)境信息和操作這些數(shù)據(jù)。方法程序:顯示對(duì)象的事件。布局:對(duì)象位置和外觀。其它:在此中存儲(chǔ)自定義屬性和一些特定屬性?!胺椒ǔ绦颉睂傩缘脑O(shè)置就是編輯代碼,左鍵雙擊這些屬性,就進(jìn)入代碼編輯框,來(lái)編輯響應(yīng)事件的代碼。在程序代碼中,使用如下的語(yǔ)法對(duì)對(duì)象屬性進(jìn)行設(shè)置:

引用對(duì)象(object).屬性(property)=值補(bǔ)充29例:對(duì)同一個(gè)對(duì)象的多個(gè)屬性的設(shè)置下列分別設(shè)置Text1文本框的value(指定當(dāng)前狀態(tài)),F(xiàn)oreColor(前景色)、BackColor(背景色)、FontName(字體),代碼放在表單的Init事件中。THISFORM.Text1.Value=DATE()THISFORM.Text1.ForeColor=RGB(0,0,0)THISFORM.Text1.BackColor=RGB(192,192,192)THISFORM.Text1.FontName="黑體"以上均為相對(duì)引用。補(bǔ)充306.5.2常用事件與方法Load事件在創(chuàng)建對(duì)象前發(fā)生。表單集的Load事件先于表單的Load事件。在該事件發(fā)生時(shí)還沒(méi)有創(chuàng)建任何控件對(duì)象,因此在此事件中不能有對(duì)控件進(jìn)行處理的代碼。Init事件:當(dāng)創(chuàng)建對(duì)象時(shí)發(fā)生。容器所包含的對(duì)象的Init事件在容器的Init事件之前發(fā)生。Destroy事件:當(dāng)釋放一個(gè)對(duì)象的實(shí)例時(shí)發(fā)生。容器對(duì)象的Destroy事件在它所包含的任何一個(gè)對(duì)象的Destroy事件之前發(fā)生具體見(jiàn)教材P.18831表單事件Unload事件

在對(duì)象被釋放時(shí)發(fā)生。是釋放表單或表單集的最后一個(gè)事件。Error事件:一個(gè)方法中有運(yùn)行錯(cuò)誤時(shí)發(fā)生。此兩事件用于表單和表單集。具體見(jiàn)教材P.18832焦點(diǎn)事件GotFocus事件:當(dāng)對(duì)象接收到焦點(diǎn)時(shí)發(fā)生。當(dāng)表單沒(méi)有控制或者它的所有控制已廢止或不可見(jiàn)時(shí)表單才能接收焦點(diǎn)。當(dāng)對(duì)象的Enabled屬性和Visible屬性均為“真”時(shí)對(duì)象才能接收焦點(diǎn)。LostFocus事件:當(dāng)對(duì)象失去焦點(diǎn)時(shí)發(fā)生。焦點(diǎn):用以指出當(dāng)前被操作的對(duì)象。33鼠標(biāo)事件Click事件:鼠標(biāo)單擊對(duì)象時(shí)發(fā)生。RightClick事件:在控制上按下并釋放鼠標(biāo)右鍵時(shí)發(fā)生。DblClick事件:當(dāng)連續(xù)兩次快速按下左鍵并釋放時(shí)發(fā)生。具體見(jiàn)教材P.18834改變控件內(nèi)容的事件InteractiveChange事件在使用鼠標(biāo)或鍵盤(pán)更改控件的值時(shí)發(fā)生。適用于:復(fù)選框、組合框、命令組、編輯框、列表框、選項(xiàng)組、微調(diào)、文本框。在每次交互更改對(duì)象時(shí),都要發(fā)生此事件。具體見(jiàn)教材P.18935方法(Method)對(duì)象能夠執(zhí)行的一個(gè)操作。是與對(duì)象相關(guān)聯(lián)的過(guò)程或函數(shù)。用戶可自定義方法程序,因此其集合是可以無(wú)限制地?cái)U(kuò)展的。在VFP中,方法是與對(duì)象相關(guān)聯(lián)的過(guò)程(處理代碼)。當(dāng)事件被激活時(shí),相關(guān)的方法代碼被執(zhí)行。例:列表框有這樣一些方法程序維護(hù)它的列表內(nèi)容:AddItem、RemoveItem和Clear等。方法程序也可以獨(dú)立于事件而單獨(dú)存在,但它在系統(tǒng)中要被顯式地調(diào)用。具體見(jiàn)教材P.18936常用方法Show方法:顯示一個(gè)表單,并且設(shè)置是模式表單還是無(wú)模式表單。Hide方法:隱藏表單、表單集或工具欄。Release方法:從內(nèi)存中釋放表單集或表單。Refresh方法:重畫(huà)表單或控件,并刷新所有值。SetFocus方法:為一個(gè)控件指定焦點(diǎn)。具體見(jiàn)教材P.18937386.6基本型控件6.6.1標(biāo)簽(Label)用以顯示文本的圖形控件。其中的文本不能被用戶直接修改,通常用于顯示提示信息。Caption:標(biāo)題,顯示內(nèi)容是字符串,最多256個(gè)字符。BackStyle(0-透明,1-不透明):設(shè)置標(biāo)簽背景是否透明。AutoSize(.T.):確定是否可以自動(dòng)地調(diào)整標(biāo)簽大小。WordWrap(.T.):確定標(biāo)簽上顯示的文本能否換行。具體見(jiàn)教材P.192對(duì)象的name屬性,只有它才能代表對(duì)象,它與用戶在表單設(shè)計(jì)器中對(duì)象顯示的內(nèi)容(caption屬性)是不同的。在引用對(duì)象時(shí),用戶用到的是對(duì)象的名字,即Name屬性396.6.2命令按鈕命令按鈕(CommandButton)常用來(lái)啟動(dòng)一個(gè)事件以完成某種功能。Caption:指定按鈕標(biāo)題。Picture:指定按鈕圖片。Default:取“真”時(shí),可按“回車”鍵選擇此按鈕。Cancel:取“真”時(shí),可按“Esc”鍵選擇此按鈕。Enabled:指定能否響應(yīng)用戶引發(fā)的事件。對(duì)命令按鈕組可以單個(gè)或作為一組操作其中的按鈕。具體見(jiàn)教材P.19340三個(gè)命令按鈕click事件處理代碼***Command1.clickIF!BOF()SKIP-1ELSEmand1.Enabled=.f.&&BUTTONS(1)命令組集合屬性不需要ENDIFmand2.Enabled=.t.THISFORM.Refresh***Command2.clickIF!EOF()SKIPELSEmand2.Enabled=.f.ENDIFmand1.Enabled=.t.THISFORM.Refresh***Command3.clickTHISFORM.RELEASE41綁定型控件(BoundControl)文本框、編輯框、微調(diào)框、復(fù)選框、選項(xiàng)按鈕、命令按鈕、命令按鈕組、列表框、組合框、表格、OLE綁定型控件等可以與數(shù)據(jù)捆綁。

ControlSource屬性可用于指定與其他(除表格、列表框、組合框控件以外)控件綁定的數(shù)據(jù)源。RecordSource屬性用于指定與表格控件相綁定的數(shù)據(jù)源RowSoruse屬性可用于指定與其列表框、組合框控件相綁定的數(shù)據(jù)源補(bǔ)充材料426.6.3文本框(TextBox)文本框(TextBox):可以顯示、輸入、編輯保存在表中的非備注型字段的數(shù)據(jù)。與文本框有關(guān)的主要屬性有:ControlSource:指定與文本框綁定的數(shù)據(jù)源。Value:指定文本框當(dāng)前選定的值。InputMark:指定數(shù)據(jù)的輸入的限制條件格式和顯示方式。Format:指定Value屬性的輸出格式(K)。PasswordChar:當(dāng)需要接收安全信息時(shí),同時(shí)不顯示實(shí)際輸入值,這時(shí)可以將文本框的PasswordChar屬性設(shè)置為*或其字符。實(shí)際輸入的值將保存在文本框的Value屬性中。

具體見(jiàn)教材P.194436.6.4編輯框(EditBox)編輯框(EditBox)編輯框與文本框的用途相似;編輯框可以輸入或編輯長(zhǎng)字段或備注型字段;編輯框允許自動(dòng)換行并能用光標(biāo)移動(dòng)鍵、操作滾動(dòng)條來(lái)瀏覽文本;ScrollBars:決定編輯框是否有垂直滾動(dòng)條。ReadOnly:指定用戶能否編輯編輯框中的內(nèi)容。SelStart:是否具有滾動(dòng)條。SelStart:返回用戶在編輯框中所選文本的起始點(diǎn)位置或插入點(diǎn)。SelLength:返回用戶的控件文本輸入?yún)^(qū)中所選字符的數(shù)目。SelText:返回用戶編輯區(qū)內(nèi)選定的文本。在實(shí)際操作時(shí)向表單中添加文本框與編輯框時(shí)可以利用相應(yīng)的生成器。許多控件都有生成器。具體見(jiàn)教材P.198446.6.5復(fù)選框(CheckBox)指定或顯示一個(gè)邏輯狀態(tài):真/假、開(kāi)/關(guān)、是/否。復(fù)選框有三種可能的狀態(tài):0或F、1或T、2或NULL。ControlSource:設(shè)置為表中的邏輯型字段。當(dāng)前記錄值為“真”時(shí),選中;“假”時(shí),未選中;當(dāng)前記錄為空值時(shí)復(fù)選框顯示為灰色。Style可以設(shè)置圖形(0標(biāo)準(zhǔn)),(1圖形)Downpicture按下(單擊)Picture具體見(jiàn)教材P.200456.6.6列表框(ListBox)用于顯示一組預(yù)定的值并可以通過(guò)滾動(dòng)條來(lái)操作瀏覽列表信息,用戶可從列表中選擇需要的數(shù)據(jù)。RowSource:決定列表框的數(shù)據(jù)源(行源)。RowSourceType:列表框的數(shù)據(jù)源的類型。具體見(jiàn)教材P.201表6.15。ControlSource:指定從列表中選擇的值保存在何處。具體見(jiàn)教材P.20046多列列表框RowSource:xh,xm,xdhRowSourceType:6-字段

ColumnCount:3設(shè)置列的個(gè)數(shù)ColumnWidths:75,75,75各列的寬度476.6.7組合框組合框(ComboBox)類似列表框和文本框的組合,可在其中輸入值或從列表中選擇條目。Style:決定組合框的類型Style0兼有列表框和文本框的功能Style2只能從下位列表框中選擇數(shù)據(jù)具體見(jiàn)教材P.20248組合框RowSource:kcmRowSourceType:6-字段

Style0兼有列表框和文本框的功能Style2只能從下位列表框中選擇數(shù)據(jù)496.7容器型控件6.7.1命令組6.7.2選項(xiàng)組6.7.3表格6.7.4頁(yè)框具體見(jiàn)教材P.20450容器對(duì)象的集合屬性和計(jì)數(shù)屬性集合屬性:是數(shù)組,用以引用每個(gè)包含在其中的對(duì)象。計(jì)數(shù)屬性:表明容器所包含的對(duì)象的數(shù)目。容器集合屬性計(jì)數(shù)屬性備注_SCREEN、表單集FormsFormCount只讀表單、頁(yè)面、列、工具欄、容器ControlsControlCount頁(yè)框PagesPageCount可讀寫(xiě)表格ColumnsColumnCount命令組、選項(xiàng)組ButtonsButtonCount補(bǔ)充材料516.7.1命令組命令按鈕(CommandGroup)常用來(lái)啟動(dòng)一組命令按鈕的窗口控件。ButtonCount:指定命令按鈕組中按鈕的數(shù)目Buttons:集合屬性,是數(shù)組,用以引用每個(gè)包含在其中的對(duì)象。THIS.BUTTONS(2).Enabled=.f.Value:表示選定的是第幾個(gè)按鈕。THIS.VALUE=1對(duì)命令按鈕組可以單個(gè)或作為一組操作其中的按鈕。具體見(jiàn)教材P.20452命令按鈕組程序代碼CommandGroup.clickDOCASECASETHIS.VALUE=1IF!BOF()SKIP-1ELSETHIS.BUTTONS(1).Enabled=.f.&&BUTTONS(1)命令組集合屬性,是數(shù)組,用以引用每個(gè)包含在其中的對(duì)象ENDIFTHIS.BUTTONS(2).Enabled=.t.CASETHIS.Value=2IF!EOF()SKIPELSETHIS.BUTTONS(2).Enabled=.f.ENDIFTHIS.BUTTONS(1).Enabled=.t.CASETHIS.Value=3THISFORM.RELEASEENDCASETHISFORM.Refresh對(duì)命令按鈕組可作為組操作其中的按鈕。Buttons屬性:用于存取命令組中各按鈕的數(shù)組。屬性數(shù)組下標(biāo)的取值范圍應(yīng)該在1至ButtonCount屬性值之間536.7.2選項(xiàng)組(OptionGroup)包含選項(xiàng)按鈕的容器控件。有時(shí)也叫單選按鈕。選項(xiàng)按鈕組允許用戶從中選擇一個(gè)按鈕,選定某個(gè)按鈕后將釋放先前的選擇,選項(xiàng)按鈕旁的圓點(diǎn)指示當(dāng)前選擇。ButtonCount:設(shè)置選項(xiàng)按鈕組中選項(xiàng)按鈕的數(shù)目。Buttons:用于存取選項(xiàng)組中每個(gè)按鈕的數(shù)組。Caption:標(biāo)題屬性。ControlSource:約定數(shù)據(jù)源。Value:表示選定的是第幾個(gè)按鈕。具體見(jiàn)教材P.20554包含選項(xiàng)按鈕的容器控件從數(shù)據(jù)源自由表examine的A字段,B字段,C字段,D字段。向表單上添加一個(gè)選項(xiàng)按鈕組控件。ButtonCount=4Value=0(無(wú)初始設(shè)置)controlSource設(shè)置為表examine的字段在運(yùn)行時(shí),當(dāng)用戶選擇標(biāo)題為“A”的按鈕時(shí),字符串“A”將被保存在表的User_Ans字段中。Question字段55選項(xiàng)按鈕的容器控件Click事件代碼:DOCASE.VALUE=1CASETHIS.VALUE=1IF!BOF()SKIP-1ELSETHIS.BUTTONS(1).Enabled=.f.ENDIFTHIS.BUTTONS(2).Enabled=.t.CASETHIS.Value=2IF!EOF()SKIPELSETHIS.BUTTONS(2).Enabled=.f.ENDIFTHIS.BUTTONS(1).Enabled=.t.

CASETHIS.Value=3INRIGHT=0N=RECNO()SCANIFALLTRIM(USER_ANS)$ANSWERINRIGHT=INRIGHT+1ENDIFENDSCANCOUNTTOINICSCORE=ALLTRIM(STR(INRIGHT/IN*100,6,2))+"%"=MESSAGEBOX('正確率為'+ICSCORE,64+0+0,'成績(jī)')gototopCASETHIS.Value=4THISFORM.RELEASEENDCASETHISFORM.Refresh566.7.3表格(Grid)表格(Grid)表格是一個(gè)按行和列以表格形式顯示數(shù)據(jù)的容器對(duì)象。表格控件包含列(Column)、列標(biāo)頭(Header)和列控件外,每個(gè)控件還有自己的一組屬性、事件和方法。表格常用于顯示一對(duì)多關(guān)系中的子表。如果表單的數(shù)據(jù)環(huán)境包含兩表之間的一對(duì)多關(guān)系,要在表單中顯示這個(gè)一對(duì)多關(guān)系,只需要把父表字段和子表拖到表單中即可。表格的RecordSource等屬性自動(dòng)設(shè)置。具體見(jiàn)教材P.20657表格的常用屬性RecordSource:指定表格的數(shù)據(jù)源。RecordSourceType:指定表格的數(shù)據(jù)源類型。ColumnCount:設(shè)置表格的列數(shù)。(默認(rèn)值為-1)LinkMaster:指定表格控件中所顯示的子表的父表名稱。childOrder:為建立一對(duì)多的關(guān)聯(lián)關(guān)系,子表所用到的索引。relationalEapr:確定基于父表字段的關(guān)聯(lián)表達(dá)式。具體見(jiàn)教材P.20758列控件的屬性:列控件的屬性:controlSoource:指定要在列中顯示的數(shù)據(jù)源,是表中的一個(gè)字段。CurrentControl:設(shè)置當(dāng)前控件標(biāo)頭(header)屬性 Coption:標(biāo)題文本 Alignment:顯示的對(duì)齊方式59表格60表格生成器616.7.4頁(yè)框(PageFrame)頁(yè)框(PageFrame)是包含頁(yè)面的容器對(duì)象。對(duì)頁(yè)面所在的表單使用Refresh方法時(shí),只刷當(dāng)前活動(dòng)的頁(yè)面。PageCount:指定頁(yè)框包含的頁(yè)面數(shù)(默認(rèn)為2)。Tabs:頁(yè)框的該屬性確定頁(yè)面的“選項(xiàng)卡”是否可見(jiàn)(默認(rèn)為.T.)。TabStyle:用于指定選項(xiàng)卡都是相同的大小且都與頁(yè)框的寬度相同。(默認(rèn)為0-兩端1-非兩端)具體見(jiàn)教材P.21062創(chuàng)見(jiàn)選項(xiàng)卡式頁(yè)框(PageFrame)頁(yè)框(PageFrame)的name屬性為:PF1。PageCount:3指定頁(yè)框包含的頁(yè)面數(shù)Caption:頁(yè)面標(biāo)題TabStyle:由“0”改為“1非兩端”MaxButton.F.MinButton.F.63創(chuàng)見(jiàn)選項(xiàng)卡式頁(yè)框(PageFrame)分別將三張js表、kc表和rk表拖放到頁(yè)框控件的三個(gè)頁(yè)面中提示:頁(yè)框必須處于編輯狀態(tài)64創(chuàng)見(jiàn)選項(xiàng)卡式頁(yè)框(PageFrame)提示:修改表格列標(biāo)頭時(shí),頁(yè)框和表格都必須處于編輯狀態(tài)65創(chuàng)建具有多重行的選項(xiàng)卡式頁(yè)框管理選項(xiàng)卡的長(zhǎng)標(biāo)題如果選項(xiàng)卡的標(biāo)題太長(zhǎng),不能在給定頁(yè)框?qū)挾群晚?yè)面數(shù)的選項(xiàng)卡上顯示出來(lái),則可以:TabStretch屬性設(shè)置為1-單行(默認(rèn))TabStretch屬性設(shè)置為0-多重行:選項(xiàng)卡層疊起來(lái),以便所有選項(xiàng)卡中的整個(gè)標(biāo)題都能顯示出來(lái)。66創(chuàng)見(jiàn)非選項(xiàng)卡式頁(yè)框非選項(xiàng)卡式頁(yè)框選項(xiàng)卡式頁(yè)框標(biāo)簽Tabs.F.效果SpecialEffect2(平面)邊框?qū)挾菳orderWidth067在程序中換頁(yè)面n=this.valueifN=4thisform.releaseelsethisform.pf1.ActivePage=nendif在程序中換頁(yè)面:不管頁(yè)框是否具有選項(xiàng)卡,都可以從程序中使用ActivePage屬性來(lái)激活一個(gè)頁(yè)面。

68計(jì)時(shí)器(Timer)計(jì)時(shí)器(Timer)計(jì)時(shí)器是在應(yīng)用程序中用來(lái)處理反復(fù)發(fā)生事件的控件。該控件在運(yùn)行時(shí)不可見(jiàn),用于后臺(tái)處理。計(jì)時(shí)器的典型應(yīng)用是檢查系統(tǒng)時(shí)鐘,決定是否到了某個(gè)應(yīng)用程序運(yùn)行的時(shí)間。Enabled:取值為“.T.”時(shí),計(jì)時(shí)器在表單加載時(shí)就開(kāi)始工作。Interval:指定控件的Timer事件時(shí)間間隔,單位為毫秒。不能決定事件發(fā)生多長(zhǎng)時(shí)間以及何時(shí)終止,而是決定事件發(fā)生的頻率。1秒=1000毫秒1分鐘=60000毫秒Reset方法可重置計(jì)時(shí)器控件,讓它從0開(kāi)始。69計(jì)時(shí)器(Timer)為計(jì)時(shí)器控件T1的Timer事件設(shè)置如下代碼:THISFORM.txt1.value=time()&&time()函數(shù)當(dāng)前系統(tǒng)時(shí)間Enabled:取值為“.T.”70計(jì)時(shí)器(Timer)1秒=1000毫秒1分鐘=60000毫秒Interval屬性設(shè)置為:5000毫秒即5秒Enabled取值為.T.

對(duì)于計(jì)時(shí)器控件來(lái)說(shuō),除了要設(shè)置Interval等屬性,還要編寫(xiě)Timer事件的處理代碼,即在Interval屬性所規(guī)定的時(shí)間間隔內(nèi),處理什么復(fù)發(fā)事件。

71計(jì)時(shí)器的Timer事件處理代碼

IF!EOF()SKIPTHISFORM.refreshELSEINRIGHT=0N=RECNO()SCANIFALLTRIM(USER_ANS)$ANSWERINRIGHT=INRIGHT+1ENDIFENDSCANCOUNTTOINICSCORE=ALLTRIM(STR(INRIGHT/IN*100,6,2))+"%"=MESSAGEBOX('正確率為'+ICSCORE,64+0+0,'成績(jī)')THISFORM.releaseENDIF72OLEOLE是一種協(xié)議。根據(jù)該協(xié)議,一個(gè)OLE對(duì)象(如電子表格、WORD文檔等)可以鏈接或嵌入表單中或表的通用字段中。嵌入用于將一個(gè)對(duì)象的副本從一個(gè)應(yīng)用程序插入另一個(gè)應(yīng)用程序。對(duì)象的副本嵌入后,不再與原來(lái)的對(duì)象有任何關(guān)聯(lián)。如果原來(lái)的對(duì)象有所改變,嵌入的對(duì)象不受影響。鏈接表示在源文檔與目標(biāo)文檔之間的一種連接。鏈接對(duì)象保存了來(lái)自源文檔的信息,并對(duì)兩文檔之間的連接進(jìn)行維護(hù)。當(dāng)源文檔中的信息發(fā)生變化時(shí),這種變化將在目標(biāo)文檔中體現(xiàn)出來(lái)。73OLE容器控件和OLE綁定型控件

OLE容器控件中的對(duì)象沒(méi)有自己的事件集合。OLE容器控件與OLE綁定型控件也不同,它不與VFP表的一個(gè)通用字段相連接。OLE綁定型控件允許用表中的通用字段顯示一個(gè)OLE對(duì)象內(nèi)容。

74利用表單生成器創(chuàng)建表單75采用何種方法向表單中添加控件最好?直接從“數(shù)據(jù)環(huán)境”中將表或視圖的字段拖放到表單中產(chǎn)生新的控件。其控件的數(shù)據(jù)源等屬性系統(tǒng)自動(dòng)地給定。76采用何種方法向表單中添加控件最好?直接從“數(shù)據(jù)環(huán)境”中將表或視圖到表單中產(chǎn)生新的控件。其控件的數(shù)據(jù)源等屬性系統(tǒng)自動(dòng)地給定。77采用何種方法向表單中添加控件最好?直接從“數(shù)據(jù)環(huán)境”中將表或視圖或它們的字段拖放到表單中產(chǎn)生新的控件。其控件的數(shù)據(jù)源等屬性系統(tǒng)自動(dòng)地給定。直接從“表單控件”工具欄添加控件,用戶必須為控件設(shè)置有關(guān)的屬性及事件處理代碼78Kc-cj表單上的控件由各種生成器生成79命令組生成器8081微調(diào)框(Spinner)微調(diào)框(Spinner)通過(guò)單擊微調(diào)框上、下箭頭或在微調(diào)框中直接輸入一個(gè)數(shù)值可實(shí)現(xiàn)微調(diào)控件在

溫馨提示

  • 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)論