版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
面向對象的程序設計基類處理對象事件
方法
第六章對象模型和事件模型結束放映?YES(是)NO(否)程序設計方法程序設計方法面向過程的程序設計(結構化程序設計)程序由三種基本結構組成,程序按照開發(fā)者規(guī)定的流程進行。面向對象的程序設計從應用程序開發(fā)者的角度來看,不再著重于代碼的全部流程,而主要考慮建立對象和賦予對象怎樣的特征與行為。從用戶的角度來看,運算的順序不是按應用程序開發(fā)者在設計時規(guī)定好的流程進行,而是根據(jù)用戶的需要進行。
面向對象程序設計是一種系統(tǒng)化的程序設計方法,允許抽象化、模塊化的分層結構。面向對象的程序設計是通過對類、子類和對象等的設計來體現(xiàn)的。利用類可以簡化程序設計,提高程序代碼的可重用性。通過類之所以可以簡化應用程序的設計,是因為類具有繼承性、多態(tài)性、封裝性、抽象性等特點。面向對象的程序設計概述基類類的基本概念類的特性
繼承性和多態(tài)性
封裝性和抽象性VFP的基類容器類與控件類可視類與不可視類基類的最小屬性集基類的最小事件集基類的最小屬性集屬性說明Class該類屬于何種類型BaseClass該類由何種基類派生而來。例如,F(xiàn)orm、CommandButton或Custom等ClassLibrary該類從屬于哪種類庫ParentClass對象所基于的類。若該類直接由VFP基類派生而來,則ParentClass屬性值與BassClass屬性值相同基類的最小事件集事件說明Init當對象創(chuàng)建時被激活Destroy當對象從內(nèi)存中釋放時激活Error當類中的事件或方法程序運行中發(fā)生錯誤時激活VisualFoxPro基類的事件集合是固定的,不能進行擴充。每個類都可識別固定的默認事件集合,它的最小事件集見下表。處理對象對象的概念對象的引用設置對象的屬性調(diào)用對象的方法程序對象對事件的響應類和對象的關系對象是面向對象程序設計中一個最重要的概念,是面向對象式系統(tǒng)中運行時刻的基本成份,也是面向對象編程的基本單元,是屬性與行為(即數(shù)據(jù)與運算)以及與其他對象的接口的封裝體。在生活中,我們可以把一部電話機看作一個對象;在VFP中,一個表單、一個命令按鈕都是一個對象。每個對象都具有屬性,以及與之相關的事件和方法,通過對象的屬性、事件和方法來處理對象。對象的概念對象的屬性屬性(Property)定義對象的特征,如命令按鈕的標題、大小、位置等。對象的某些屬性值既能在設計階段也能在運行階段進行設置,某些屬性則不能進行設置的,是只讀的。用戶可以增加新的屬性。對象的事件事件(Event)是由對象識別的一個動作,可以編寫相應的代碼對此動作進行響應。通常事件是由一個用戶動作產(chǎn)生(如用鼠標單擊某命令按鈕時將會觸發(fā)一個Click事件),也可以由程序代碼(如列表框的ProgrammticChange事件)或系統(tǒng)產(chǎn)生(如計時器的Timer事件)。在VisualFoxPro中,不同的對象所能識別的事件雖然有所不同,但事件集合是固定的,用戶不能創(chuàng)建新的事件。
方法(Method)是對象能夠執(zhí)行的一個運算。方法是與對象相關聯(lián)的過程(完成某種運算的處理代碼),通常也稱為方法程序,它緊密地和對象連接在一起。例如,列表框的AddItem、RemoveItem和Clear等,方法也可以由用戶自己創(chuàng)建。事件可以具有與之相關聯(lián)的方法程序。例如,為某命令按鈕的Click(單擊鼠標)事件編寫的方法程序將在單擊該命令按鈕(Click事件發(fā)生)時執(zhí)行。方法程序也可以獨立于事件而單獨存在,它在系統(tǒng)中被顯式地調(diào)用,如Thisform.refresh。對象的方法面向過程程序設計面向對象程序設計函數(shù)方法系統(tǒng)函數(shù)自定義函數(shù)系統(tǒng)方法自定義方法函數(shù)與方法類定義了對象特征以及對象外觀和行為的模板,它刻劃了一組具有共同特性的對象。對象是類的一個實例,包括了數(shù)據(jù)和過程(運算)。在采用面向對象的程序設計方法設計的程序中,程序由一個或多個類組成,在程序運行時視需要創(chuàng)建該類的各個對象(實例)。因此,類是靜態(tài)概念,而對象是動態(tài)概念。類和對象的關系1.絕對引用絕對引用是指從容器的最高層次引用對象,給出對象的絕對地址。如“KC表編輯”表單中“必修課”一列中的復選框對象的絕對引用,可以表示為:form1.grid1.column4.check1。2.相對引用
相對引用是指在容器層次中相對于某個容器層次的引用。在表6.3.1列出了在相對引用對象時,所涉及到的一些關鍵字。其中THIS、THISFORM、THISFORMSET只能在方法程序或事件處理代碼中使用。系統(tǒng)變量_SCREEN表示屏幕對象,與ActiveForm等組合可以在不知道表單名的情況下處理活動表單: _SCREEN.ActiveForm _SCREEN.ActiveForm.ActiveControl對象的引用ActiveForm當前活動表單ActivePage當前活動表單中的活動頁面ActiveControl當前活動表單中具有焦點的控件Parent該對象的直接容器THIS該對象THISFORM包含該對象的表單THISFORMSET包含該對象的表單集表6.3.1“KC表編輯”表單“復選框”控件設置對象屬性每個對象都有許多屬性。通過對對象屬性的設置,可以定義對象的特征或某一方面的行為。對象的大多數(shù)屬性既可以在設計時進行設置也可以在運行時設計,但也有一些屬性是只讀的。設置對象屬性的基本方法是:1.采用可視化的方法設置對象屬性在表單設計器的“屬性”窗口中設置對象的屬性2.在運行時設置對象的屬性引用對象.屬性=值調(diào)用對象的方法程序
方法程序是對象能夠執(zhí)行的一個運算,是和對象相聯(lián)系的過程。基于VisualFoxPro基類創(chuàng)建的對象都有多個相關的方法程序,用戶也可以創(chuàng)建新的方法程序。如果對象已經(jīng)創(chuàng)建,便可以在應用程序的任何地方調(diào)用這個對象的方法程序。調(diào)用方法程序的語法如下:引用對象.方法程序對于有返回值的方法程序必須以圓括號結尾(類似于函數(shù)調(diào)用),如果有參數(shù)傳遞給方法程序,該參數(shù)也必須放在括號中。當對象的某個事件發(fā)生時,該事件的處理程序代碼將被執(zhí)行。如果事件沒有與之相關聯(lián)的處理程序,則當事件發(fā)生時不會發(fā)生任何運算。每個對象的事件集合是固定的,用戶不能創(chuàng)建其他事件,但可以調(diào)用與這些事件相關的過程。例如,F(xiàn)ormSet1.Form1.Activate使得表單Form1的Activate事件的代碼被執(zhí)行,但并不激活這個表單。若要激活表單,應調(diào)用表單的Show方法。調(diào)用Show方法將顯示并激活表單,同時Activate事件代碼也將被執(zhí)行。對象對事件的響應事件核心事件容器層次與類層次中的事件事件激發(fā)的順序常用的事件事件驅動和事件循環(huán)核心事件集事件事件被激發(fā)后的動作Load表單或表單集被加載到內(nèi)存中Unload從內(nèi)存中釋放表單或表單集Init創(chuàng)建對象Destroy從內(nèi)存中釋放對象Click用戶使用主鼠標按鈕單擊對象Dblclick用戶使用主鼠標按鈕雙擊對象RightClick用戶使用輔鼠標按鈕單擊對象GotFocus對象接收焦點,由用戶動作引起,如按<Tab>鍵或單擊,或在代碼中使用SetFoucs方法LostFocus對象失去焦點,由用戶動作引起,如按<Tab>鍵或單擊,或在代碼中使用SetFoucs方法KeyPress用戶按下或釋放鍵MouseDown當鼠標指針停在一個對象上時,用戶按下鼠標按鈕MouseMove用戶在對象上移動鼠標MouseUp當鼠標指針停在一個對象上時,用戶釋放鼠標按鈕InteractiveChange以交互方式改變對象值ProgrammaticChange以編程方式改變對象值容器層次與類層次中的事件為控件編寫事件的處理代碼時,應注意事件觸發(fā)原則:
對于同一事件,只有最內(nèi)層的對象的事件觸發(fā),而容器的事件不觸發(fā)。但上述的原則也有例外。對于選項按鈕組與命令按鈕組來說,組中個別按鈕如果沒有編寫事件處理代碼,則當事件發(fā)生時將執(zhí)行容器相關事件的處理代碼。在VisualFoxPro中,有些事件以及事件激發(fā)的順序是固定的(如表單在創(chuàng)建或刪除時發(fā)生的事件序列),有些事件是獨立發(fā)生的(如Timer事件等),但大多數(shù)事件是用戶與VisualFoxPro的交互運算時伴隨著其它一系列事件發(fā)生的。
事件激發(fā)的順序事件激發(fā)的順序事件的觸發(fā)順序要注意兩點:一、對于同一對象的不同事件的發(fā)生順序二、對于同一事件的多個對象的事件發(fā)生順序如處于同一層次,按照TAB鍵順序觸發(fā),不同層次,先觸發(fā)最內(nèi)層對象的事件詳見VFP事件順序表。VFP事件順序表(1)對象事件備注數(shù)據(jù)環(huán)境BrforeOpenTable僅發(fā)生在與表單集、表單或報表的數(shù)據(jù)環(huán)境相關聯(lián)的表和視圖打開前表單集Load在創(chuàng)建表單集對象前發(fā)生表單Load在創(chuàng)建表單對象前發(fā)生數(shù)據(jù)環(huán)境臨時表Init在創(chuàng)建數(shù)據(jù)環(huán)境臨時表對象時發(fā)生數(shù)據(jù)環(huán)境Init在創(chuàng)建數(shù)據(jù)環(huán)境對象時發(fā)生對象Init對于每個對象從最內(nèi)層的對象到最外層的容器,在創(chuàng)建對象時發(fā)生表單集Active當激活表單集對象時發(fā)生表單Active當激活表單對象時發(fā)生VFP事件順序表(2)對象事件備注對象When對于每個對象從最內(nèi)層的對象到最外層的容器,從Tab鍵次序中的第一個對象開始,在控件接收焦點之前此事件發(fā)生表單GotFocus當通過用戶或執(zhí)行程序代碼使對象接收到焦點時,此事件發(fā)生對象GotFocus對于每個對象從最內(nèi)層的對象到最外層的容器,當通過用戶或執(zhí)行程序代碼使對象接收到焦點時,此事件發(fā)生對象Message對于每個對象從最內(nèi)層的對象到最外層的容器,控件得到焦點后此事件發(fā)生對象Valid對于每個對象從最內(nèi)層的對象到最外層的容器,當對象失去焦點前此事件發(fā)生對象LostFocus當對象失去焦點時此事件發(fā)生VFP事件順序表(3)對象事件備注對象When從“Tab鍵次序”中的第一個對象開始,在下一個獲得焦點的對象接收之前此事件發(fā)生對象GotFocus從“Tab鍵次序”中的第一個對象接收到焦點時此事件發(fā)生對象Message從“Tab鍵次序”中的第一個對象得到焦點后此事件發(fā)生對象Valid從“Tab鍵次序”中的第一個對象開始,當對象失去焦點時此事件發(fā)生對象Lostfocus對象失去焦點時此事件發(fā)生表單QueryUnload在卸載一個表單之前發(fā)生此事件對象Destroy對于每個對象從最內(nèi)層的對象到最外層的容器,當釋放一個對象的實例時此事件發(fā)生VFP事件順序表(4)對象事件備注表單Unload在表單被釋放時發(fā)生表單集Unload在表單集被釋放時發(fā)生數(shù)據(jù)環(huán)境AfterCloseTables在表單、表單集或報表的數(shù)據(jù)環(huán)境中,釋放指定表或視圖后,將發(fā)生此事件數(shù)據(jù)環(huán)境Destroy當釋放一個數(shù)據(jù)環(huán)境對象的實例時發(fā)生此事件數(shù)據(jù)環(huán)境臨時表Destroy當釋放一個數(shù)據(jù)環(huán)境臨時表對象的實例時發(fā)生此事件常用的事件鼠標事件與鍵盤事件改變控件內(nèi)容的事件焦點事件表單事件數(shù)據(jù)環(huán)境事件其它事件鼠標事件鼠標事件主要有MouseMove事件、Clik事件、RightClick事件、DblClick事件、MouseDown事件、MouseUp事件、DrapDrop事件、DragOver事件、DropDown事件、Scrolled事件、DownClick事件、UpClick事件等。鍵盤事件在VFP中,與鍵盤運算相關的事件主要是KeyPress事件。當用戶按下并釋放某個鍵時發(fā)生此事件。KeyPress事件常用于截取輸入到控件中的鍵擊,該事件應用于復選框、組合框、命令按鈕、編輯框、表單、列表框、選項按鈕、微調(diào)框、文本框。其處理程序的語法為:PROCEDUREObject.KeyPressLPARAMETERS[nIndex,]nKeyCode,nShiftAltCtrl改變控件內(nèi)容的事件(1)InteractiveChange事件
在使用鍵盤或鼠標更改控件的值時發(fā)生。該事件應用于復選框、組合框、命令組、編輯框、列表框、選項組、微調(diào)、文本框。其處理程序的語法為:PROCEDUREControl.InteractiveChange[LPARAMETERSnIndex]其中參數(shù)nIndex對于控件數(shù)組中的控件指定唯一標識號。在每次交互地更改對象時,都要發(fā)生此事件。例如,當用戶在文本框中鍵入字符時,每一次擊鍵都會觸發(fā)。(2)ProgrammaticChange事件在程序代碼中更改一個控件值時發(fā)生。該事件的應用范圍及其處理程序的語法同InteractiveChange事件相同。焦點事件(1)(1)GotFocus事件當通過用戶運算或執(zhí)行程序代碼使對象接收到焦點時,此事件發(fā)生。該事件應用于復選框、組合框、命令按鈕、容器對象、控件對象、編輯框、表單、列表框、OLE綁定型控件、OLE容器控件、選項按鈕、微調(diào)、文本框。只有當對象的Enabled屬性和Visible屬性均設置為“真”(.T.)時,此對象才能接收焦點。(2)LostFocus事件當某個對象失去焦點時發(fā)生??丶捎谟脩舻倪\算而失去焦點,這類運算包括選中另一個控件或在另一個控件上單擊,或在代碼中用SetFocus方法更改焦點。用戶按CTRL+TAB鍵退出表格時,表格失去焦點。(3)When事件在控件接收焦點之前此事件發(fā)生。該事件應用于復選框、組合框、命令按鈕、命令組、編輯框、表格、列表框、選項按鈕、選項組、微調(diào)、文本框。(4)Valid事件在控件失去焦點之前發(fā)生。若Valid事件返回“真”(.T.),表明控件失去了焦點;若返回“假”(.F.),則說明控件沒有失去焦點。焦點事件(2)表單事件(1)
(1)Load事件在創(chuàng)建對象前發(fā)生。該事件應用于表單和表單集。表單集的Load事件先發(fā)生,其所包含的表單的Load事件后發(fā)生。Load事件發(fā)生在Activate和GotFocus事件之前。在Load事件發(fā)生時還沒有創(chuàng)建任何表單中的控件對象,因此在Load事件的處理程序中不能對控件進行處理。(2)Unload事件在對象被釋放時發(fā)生。Unload事件是在釋放表單集或表單之前發(fā)生的最后一個事件。Unload事件發(fā)生在Destroy事件和所有包含的對象被釋放之后。容器對象的Unload事件發(fā)生在其所包含的對象的Unload事件之后。
(3)Activate事件當激活表單、表單集或頁對象,或者顯示工具欄對象時,將發(fā)生Activate事件。該事件應用于表單、表單集、頁面、工具欄。此事件的觸發(fā)取決于對象的類型:表單事件(2)
當表單集中的一個表單獲得焦點,或調(diào)用表單集的Show方法時,激活表單集對象。當用戶單擊一個表單或單擊一個控件,或者調(diào)用表單對象的Show方法時,激活表單對象。當用戶單擊一個表單或單擊一個控件,或者調(diào)用表單對象的Show方法時,激活表單對象。當用戶單擊頁面的選項卡,單擊頁面上的控件,或者將包含頁對象的頁框的ActivePage屬性設置為此頁對象對應頁碼時,激活頁對象。當調(diào)用工具欄的Show方法時,激活工具欄。使用表單集的Show方法時,首先激活表單集,然后是表單,最后是頁面。數(shù)據(jù)環(huán)境事件
(1)AfterCloseTables事件在表單、表單集或報表的數(shù)據(jù)環(huán)境中,釋放指定表或視圖后,將發(fā)生此事件。對于表單或表單集,AfterCloseTable事件發(fā)生在表單集或表單的Unload事件之后,另外還發(fā)生在由數(shù)據(jù)環(huán)境打開的表或視圖關閉之后。在任何時候調(diào)用CloseTables方法,都會發(fā)生AftercloseTables事件。AfterCloseTable事件發(fā)生后,將發(fā)生數(shù)據(jù)環(huán)境和其相關對象的Destory事件。(2)BeforeOpenTables事件僅發(fā)生在與表單集、表單或報表的數(shù)據(jù)環(huán)境相關聯(lián)的表和視圖打開之前。對于表單集或表單,BeforeOpenTables事件發(fā)生在表單集或表單的Load事件之前。
其它事件(1)
(1)Init事件在創(chuàng)建對象時發(fā)生。該事件應用于復選框、組合框、命令按鈕、命令組、容器對象、控件對象、臨時表、自定義控件、數(shù)據(jù)環(huán)境、編輯框、表單、表單集、表格、圖象、標簽、線條、列表框、OLE綁定型控件、OLE容器控件、選項按鈕、選項組、頁面、頁框、關系、形狀、微調(diào)、文本框、計時器、工具欄。對于表單集和其他容器對象來說,容器中對象的Init事件在容器的Init事件之前觸發(fā),因此容器的Init事件可以訪問容器中的對象,例如在表單的Init事件處理程序中可以處理表單上的任意一個控件對象。容器中對象的Init事件的發(fā)生順序與它們添加到容器中的順序相同。
(2)Timer事件當經(jīng)過Interval屬性中指定的毫秒數(shù)時,此事件發(fā)生。該事件應用于計時器。(3)Destroy事件當釋放一個對象的實例時發(fā)生。該事件的應用范圍同Init事件。一個容器對象的Destroy事件在它所包含的任何一個對象的Destroy事件之前觸發(fā);容器的Destroy事件在它所包含的各對象釋放之前可以引用它們。(4)Error事件當某方法在運行出錯時,此事件發(fā)生。該事件的應用范圍同Init事件。如果正在處理錯誤時,Error事件過程中又發(fā)生了第二個錯誤,VisualFoxPro將調(diào)用ONERROR例程。如果ONERROR例程不存在,VisualFoxPro將掛起程序并報告錯誤,如同Error事件和ONERROR例程不存在一樣。其它事件(2)
事件驅動和事件循環(huán)(1)
在面向對象的程序設計中,程序代碼大多數(shù)是為對象或對象的某個(某些)事件而編寫的事件處理程序代碼,程序代碼的執(zhí)行總是由某個事件的發(fā)生而引起。即采用面向對象的程序設計方法設計的應用程序,其功能的實現(xiàn)是由事件驅動的。采用事件驅動程序設計方法所設計的應用程序,程序的執(zhí)行是由事件驅動的,一旦程序啟動后就根據(jù)發(fā)生的事件執(zhí)行相應的程序,如果無事件發(fā)生則程序就空閑著以等待事件的發(fā)生,此時用戶也可以啟動其它多個應用程序。利用VisualFoxPro進行應用程序設計時,必須創(chuàng)建事件循環(huán)(eventloop)。事件循環(huán)是由READEVENTS命令建立。事件驅動和事件循環(huán)(2)CLEAREVENTS命令用于終止事件循環(huán)。如果CLEAREVENTS命令是位于某程序代碼中且該命令后還有其它命令,則執(zhí)行CLEAREVENTS命令后程序繼續(xù)執(zhí)行緊跟在READEVENTS后面的那條語句。在設計應用程序時,設置環(huán)境并且顯示初始用戶界面之后就可以著手建立事件循環(huán),以等待用戶運算并進行響應。READEVENTS命令通常是出現(xiàn)在應用程序的主程序中,或主菜單的清理代碼中,或主表單的某事件處理程序中。在啟動事件循環(huán)之前需要建立一種退出事件循環(huán)的方法,而且必須確保界面有這種發(fā)出CLEAREVENTS命令的機制(例如表單的“退出”按鈕或菜單命令)。如果沒有這樣做,則會陷于死循環(huán),這時就需要按ESC鍵強制中斷程序的執(zhí)行,或者重新啟動計算機。方法(1)方法(程序)是對象能夠執(zhí)行的一個運算。在VFP中,系統(tǒng)提供了一些方法,其程序是一些默認過程。用戶可以調(diào)用這些方法程序,也可以為這些方法設計新的程序(即修改方法程序的默認過程)。此外,用戶還可以創(chuàng)建新的方法。常用的系統(tǒng)方法有:★ActivateCell方法ActivateCell方法是激活表格控件中的一個單元。語法為:Grid.ActivateCell(nRow,nCol)其中nRow,nCol指定活動單元所在的行和列?!顰ddColumn方法AddColumn方法是向表格控件中添加列對象。語法為:Grid.AddColumn(nIndex)其中nIndex指定一個表示位置的數(shù),新列將添加到表格中的此位置上,原有的列向右移動,但是ColumnCount屬性的值不增加。
方法(2)★AddItem方法AddItem方法是在組合框或列表框中添加一個新數(shù)據(jù)項,并且可以指定數(shù)據(jù)項索引。其語法為:Control.AddItem(cItem[,nIndex][,nColumn])其中cItem指定添加到控件中的字符串表達式。nIndex指定控件中放置數(shù)據(jù)項的位置。Column指定控件的列,新數(shù)據(jù)項加入到此列中。★AddObject方法AddObject方法是在運行時向容器對象中添加對象。其語法為:Object.AddObject(cName,cClass[,cOLEClass][,aInit1,aInit2...])其中cName指定引用新對象的名稱。cClass指定添加對象所在的類。cOLEClass指定添加對象的OLE類。aInit1,aInit2...指定傳給新對象的Init事件的參數(shù)。調(diào)用AddObject方法時,將觸發(fā)新添加對象的Init事件。當用AddObject方法往容器中加入對象時,對象的Visible屬性設置為“假”(.F.),因此要將其改為“真”(.T.)方可見?!顲lear方法Clear方法是清除組合框或列表框控件的內(nèi)容。語法為:bject.Clear注意:僅當RowSourceType為0(無)時,Clear方法才有效?!顳eleteColumn方法DeleteColumn方法是從表格控件中刪除一列。其語法為:Grid.DeleteColumn[(nIndex)]其中nIndex指定在表格中的列的編號。如果不指定nIndex,則刪除表格中當前活動列。方法(3)★Draw方法Draw方法是重畫表單對象。其調(diào)用語法為: Object.Draw★Hide方法Hide方法是通過把Visible屬性設置為“假”(.F.),隱藏表單、表單集或工具欄。其調(diào)用語法為:Object.Hide表單被隱藏后,用戶不可可視化地訪問其控件,但可以在代碼中訪問它們,并且表單中的控件仍然保留自己的Visible屬性設置值。同樣表單集被隱藏后,用戶不可訪問其中的表單,但是這些表單仍然可用,并且可以在代碼中訪問它們。表單集的Hide方法并不設置子表單的Visible屬性,因此,當一個表單包含在一個表單集中時,若要判斷該表單是否可見,必須同時檢查表單和表單集的Visible屬性設置。方法(4)★DoCmd方法DoCmd方法是執(zhí)行一條指定的VFP命令。其調(diào)用語法為:ApplicationObject.DoCmd(cCommand)參數(shù)cCommand指定被執(zhí)行的VisualFoxPro命令?!颮efresh方法Refresh方法是重畫表單或控件,并刷新所有值。其語法為:[[FormSet.]Object.]Refresh使用Refresh方法可以重畫表單或控件,并更新控件的值。刷新表單的同時,也刷新表單上所有的控件;刷新頁框時,只刷新活動的頁。要更新組合框或列表框的內(nèi)容,需使用Requery方法?!颮elease方法Release方法是從內(nèi)存中釋放表單集或表單。其調(diào)用語法為:Object.Release可以使用Screen對象的Forms集合找到表單集或表單,并調(diào)用其Release方法。方法(5)★RemoveItem方法RemoveItem方法是從組合框或列表框中移去一項。語法為:Control.RemoveItem(nIndex)參數(shù)nIndex指定一個整數(shù),它對應于被移去項在控件中的顯示順序。對于列表框或組合框中的第一項,nIndex=1?!颮emoveObject方法RemoveObject方法是運行時從容器對象中刪除一個指定的對象。對象刪除后,它便從屏幕上消失,并且不能再引用。其調(diào)用語法為:Object.RemoveObject(cObjectName)參數(shù)cObjectName指定要刪除的對象名,如果指定對象不存在,則會出錯。方法(6)★Requery方法Requery方法是重新查詢列表框或組合框控件中所基于行源(RowSource)。其調(diào)用語法為:Control.RequeryControl.Requery使用Requery方法可以確??丶邪钚碌臄?shù)據(jù)。Requery方法重新查詢RowSource屬性,并且使用新的值更新列表?!颯etALL方法SetAll方法是為容器對象中的所有控件或某類控件指定一個屬性設置。其調(diào)用語法為:Container.SetAll(cProperty,Value[,cClass])其中cProperty是要設置的屬性。Value屬性的新值,Value的數(shù)據(jù)類型取決于要設置的屬性。cClass指定類名。方法(7)★SetFocus方法SetFocus方法是為一個控件指定焦點。其調(diào)用語法為:Control.SetFocus如果控件的Enabled或Visible屬性設置為“假”(.F.),或者控件的When事件返回“假”(.F.),則不能給一個控件設置焦點;即如果控件的Enabled或Visible屬性已設置為“假”(.F.),則控件在使用SetFocus方法接受焦點之前,必須首先把它們設置為“真”(.T.)?!颯how方法Show方法是顯示一個表單,并且確定是模式表單還是無模式表單。其調(diào)用語法為:[FormSet.]Object.Show([nStyle])參數(shù)nStyle確定如何顯示表單。為1時表單為模式表單,只有隱藏或釋放模式表單之后,用戶的輸入才能被其他表單或菜單接收;為2(默認值)時,表單為無模式表單,方法(8)遇到Show方法之后出現(xiàn)的代碼時就執(zhí)行代碼。如果nStyle省略,表單按WindowType屬性指定的樣式顯示。Show方法把表單或表單集的Visible屬性設置為“真”(.T.),并使表單成為活動的對象。如果表單的Visible屬性已經(jīng)設置為“真”(.T.),則Show方法使它成為活動對象。如果激活的是表單集,則表單集中最近一個活動表單成為活動表單;如果沒有活動表單,則第一個添加到表單集類定義中的表單成為活動表單。表單集中包含的表單保留Visible屬性設置。如果表單的Visible屬性設置為“假”(.F.),表單集的Show方法不顯示這個表單。所有表單集中的表單采取表單集的形式。例如,如果表單集為模式表單集,則所有的表單都為模式表單。方法(9)類的基本概念類的概念是由類型和模塊相結合而產(chǎn)生的。一般地說,具有共同特征、狀態(tài)和行為的對象的集合稱為類。類和對象是緊密相連的,類是對象的模板,而單個對象是對應類的一個實例。如電話機是一個類,而某一部電話機是電話機類的一個實例。命令按鈕是一個類,而某一個表單上的“確定”按鈕是命令按鈕的一個實例?;?baseclass)是VisualFoxPro系統(tǒng)提供的內(nèi)部定義的類,可用作其他用戶自定義類的基礎。如,表單和所有控件就是基類,可在此基礎上創(chuàng)建新類,增添自己需要的功能。子類(subclass)是以其他類定義為起點,為某一種對象所建立的新類。子類將繼承任何對父類(即子類所基于的類)所做的修改。用戶自定義類(user-definedclass)與VisualFox
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度創(chuàng)意園區(qū)個人租賃合同書3篇
- 2025年度農(nóng)產(chǎn)品自產(chǎn)自銷農(nóng)村電商扶貧合作合同3篇
- 2025年度汽車維修企業(yè)員工績效考核與激勵合同范本3篇
- 二零二五年度網(wǎng)絡紅人經(jīng)紀合作合同范本3篇
- 二零二五年度風力發(fā)電工程質保金合同規(guī)定2篇
- 2025年度公租房合同(含租戶信息保密條款)2篇
- 二零二五年度農(nóng)村墓地墓區(qū)照明系統(tǒng)設計與安裝協(xié)議
- 2025年度文化產(chǎn)業(yè)股權置換及合作協(xié)議書3篇
- 二零二五年度企業(yè)股份分割與股權激勵實施協(xié)議書2篇
- 二零二五年度消費股東合作協(xié)議及創(chuàng)新業(yè)務拓展2篇
- 自行招用保安員單位備案申請材料
- 一般抹灰分項工程檢驗批質量驗收記錄
- (完整版)非計劃性拔管魚骨圖
- DB32∕T 3377-2018 城市公共建筑人防工程規(guī)劃設計規(guī)范
- 中建三局住宅工程精益建造實施指南
- 分布式光伏發(fā)電項目并網(wǎng)驗收意見單
- 網(wǎng)站隱私政策模板
- YY∕T 1831-2021 梅毒螺旋體抗體檢測試劑盒(免疫層析法)
- 消弧產(chǎn)品規(guī)格實用標準化規(guī)定
- 裝飾裝修工程施工合理化建議和降低成本措施提要:完整
- 第十四章35kV變電站保護整定值計算實例
評論
0/150
提交評論