版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
本章學(xué)習(xí)目標(biāo)明確過程的概念掌握sub子過程和function子過程的定義和調(diào)用理解過程調(diào)用時(shí)實(shí)參和形參的關(guān)系,掌握參數(shù)的傳值方式和傳遞地址方式理解和掌握VB的不同模塊中過程的作用域和調(diào)用形式第8章過程過程的概念一個(gè)過程就是由若干條語句構(gòu)成、具有相對(duì)獨(dú)立功能的一段程序代碼。一個(gè)完整的程序通常由一個(gè)主過程和若干個(gè)子過程組成,主過程可根據(jù)需要調(diào)用子過程來實(shí)現(xiàn)相應(yīng)的功能,而且各子過程間也能相互調(diào)用。每一個(gè)過程就是一個(gè)完整的功能模塊,由順序、選擇和循環(huán)三種基本結(jié)構(gòu)組成。過程的分類在VisualBasic6.0中,可以使用的過程包括子程序過程、函數(shù)過程、屬性過程、事件過程四種類型。事件過程,是VB應(yīng)用程序的主體,能夠很好地支持VB以事件驅(qū)動(dòng)的編程機(jī)制。這類過程一般是由VB系統(tǒng)創(chuàng)建的,用戶也可以自己創(chuàng)建事件過程,在觸發(fā)相應(yīng)的事件時(shí)會(huì)自動(dòng)執(zhí)行事件過程中的程序代碼。子程序過程,也稱為自定義子過程,是由用戶自己創(chuàng)建的一類過程。它不依附于VB的某一對(duì)象,獨(dú)立于事件過程之外,可供其他自定義過程或事件過程進(jìn)行調(diào)用。函數(shù)過程,即Function過程。這也是由用戶自己創(chuàng)建的一類過程,同事件過程、自定義過程的主要區(qū)別在于函數(shù)過程要求有一定的返回值。屬性過程,是由用戶自己創(chuàng)建的一類過程,用來返回或設(shè)置屬性的值及設(shè)置對(duì)象的引用等。8.1Sub過程子程序過程和事件過程的定義都是使用Sub關(guān)鍵字開頭,這兩類過程統(tǒng)稱為Sub過程。為更好地理解這兩類過程,做如下區(qū)別:子程序過程不依附于某一對(duì)象,而事件過程必須是與某一對(duì)象相關(guān)聯(lián)的。子程序過程是由用戶自己創(chuàng)建的,而事件過程主要是由VB系統(tǒng)創(chuàng)建的。事件過程在事件被觸發(fā)時(shí)會(huì)自動(dòng)調(diào)用,而子程序過程則必須通過調(diào)用語句的調(diào)用才能被執(zhí)行,且可以多次被調(diào)用。如不做特殊說明,以下提到的事件過程都是指VB系統(tǒng)預(yù)定義的事件過程,如窗體的Load事件、命令按鈕的Click事件等。8.1.1Sub過程的創(chuàng)建創(chuàng)建Sub過程的方法有兩種:利用“工具”菜單下的“添加過程”命令在代碼窗口中直接定義注意:要?jiǎng)?chuàng)建Sub過程,必須事先打開代碼窗口聲明Sub過程的語句及語法不管是通過“添加過程”對(duì)話框創(chuàng)建Sub過程,還是在代碼編輯窗口中直接定義,都必須明確聲明Sub過程的語句的語法?!靖袷健縖Public|Private][Static]Sub<子過程名>([形參列表])[局部變量或符號(hào)常量的聲明][語句序列][ExitSub][語句序列]EndSub【說明】子程序過程以Sub開頭,EndSub結(jié)束,二者之間的語句序列稱為過程體。Public|Private用于定義過程的作用范圍,對(duì)應(yīng)于“添加過程”對(duì)話框中的“范圍”選項(xiàng)。關(guān)鍵字Public和Private只能二選一,其中Public聲明的過程為全局級(jí),可以在當(dāng)前工程的所有模塊中被調(diào)用;Private聲明的過程為模塊級(jí),只能在聲明該過程的模塊中被調(diào)用。缺省時(shí),聲明的過程是全局級(jí)的。Static聲明在該過程中定義的所有變量都是靜態(tài)變量,對(duì)應(yīng)于“添加過程”對(duì)話框中“所有本地變量為靜態(tài)變量”選項(xiàng)。子過程名是必選項(xiàng),用于定義過程的名稱,命名規(guī)則同變量的命名規(guī)則一致。參數(shù)列表用于定義過程的形式參數(shù),每一個(gè)參數(shù)相當(dāng)于一個(gè)變量,其聲明的形式類似于變量的聲明,如果有多個(gè)參數(shù),參數(shù)與參數(shù)之間用逗號(hào)進(jìn)行分隔。語句序列是過程要執(zhí)行的程序代碼,用于規(guī)定過程要完成的功能。ExitSub是退出子過程語句,該語句可出現(xiàn)在過程中的任意一個(gè)語句位置。程序一旦執(zhí)行該語句,將退出當(dāng)前過程的執(zhí)行,返回到主調(diào)過程中調(diào)用該過程語句的下一條語句上繼續(xù)執(zhí)行。EndSub標(biāo)識(shí)子過程的結(jié)束。一旦執(zhí)行EndSub語句,將同樣結(jié)束當(dāng)前子過程的調(diào)用,返回到主調(diào)過程中繼續(xù)執(zhí)行。8.1.2Sub過程的調(diào)用過程的調(diào)用是指實(shí)際去執(zhí)行過程中的語句序列。通常,如果在過程A中調(diào)用了過程B,則稱A為主調(diào)過程,B為被調(diào)過程。主調(diào)過程和被調(diào)過程是一個(gè)相對(duì)的概念,如果過程B又調(diào)用了過程C,則過程C為被調(diào)過程,而過程B對(duì)過程C來講則是主調(diào)過程。圖8-4過程調(diào)用示意圖主調(diào)過程A┆過程B調(diào)用語句語句i┆EndSub被調(diào)過程B┆語句i┆EndSub8.1.2Sub過程的調(diào)用子程序過程必須通過調(diào)用語句顯式調(diào)用才能執(zhí)行過程中的代碼。調(diào)用子程序過程的語句有如下兩種形式:【格式1】Call<過程名>([參數(shù)列表])【格式2】<過程名>[參數(shù)列表]【說明】參數(shù)列表中的參數(shù)為實(shí)際參數(shù),即在過程調(diào)用時(shí)傳遞給過程的實(shí)際量,能夠?yàn)楸徽{(diào)過程的形式參數(shù)接收。主調(diào)過程的實(shí)參傳遞給被調(diào)過程的形參時(shí)要保持一一對(duì)應(yīng)的關(guān)系。如果有多個(gè)實(shí)參,參數(shù)與參數(shù)之間用逗號(hào)隔開。用Call語句調(diào)用過程時(shí),參數(shù)列表必須包含在括號(hào)之內(nèi),如果沒有參數(shù)(也稱無參過程),可以省略掉括號(hào);而使用格式2調(diào)用過程時(shí),必須省略括號(hào)。例8-1,子程序過程的創(chuàng)建和調(diào)用8.2Function過程VB中的Function過程,即函數(shù)過程是過程的另一種表現(xiàn)形式。為完成函數(shù)要求的運(yùn)算,必須首先要對(duì)函數(shù)進(jìn)行定義;在表達(dá)式中調(diào)用函數(shù)時(shí),函數(shù)運(yùn)算的結(jié)果作為函數(shù)的返回值返回到主調(diào)過程,這也是Function過程與Sub過程的不同點(diǎn)。由VB系統(tǒng)的設(shè)計(jì)者預(yù)先編寫完成后封裝在VB系統(tǒng)文件中的函數(shù)過程,是VB系統(tǒng)預(yù)定義的內(nèi)部函數(shù),只要啟動(dòng)VB的系統(tǒng)環(huán)境,用戶就可以使用這些內(nèi)部函數(shù),不需要重新定義,也不必關(guān)心函數(shù)過程的內(nèi)部代碼是如何編寫的。8.2.1Function過程的創(chuàng)建與子程序過程類似,創(chuàng)建Function過程也有兩種方法:利用“工具”菜單下的“添加過程”命令在代碼編輯窗口直接定義不管是通過“添加過程”命令,還是直接在代碼編輯窗口中定義函數(shù)過程,都必須遵守Function過程定義的語法格式[Public|Private][Static]Function函數(shù)過程名([形參列表])[As類型][局部變量或符號(hào)常量的聲明][語句序列]函數(shù)過程名=表達(dá)式[ExitFunction][語句序列][函數(shù)過程名=表達(dá)式]EndFunctionFunction過程以Function開頭,以EndFunction結(jié)尾,兩者之間描述過程操作的語句序列稱為函數(shù)體。格式中Public、Private、Static、ExitFunction、函數(shù)過程名、形參列表同Sub過程的含義相同。“As類型”用于指定Function過程返回值的類型,可以為Integer、Long、Single、Currency、String等,缺省時(shí)為Variant類型。由Function過程返回的值通過“函數(shù)過程名=表達(dá)式”賦給函數(shù)過程名,在調(diào)用函數(shù)過程時(shí)由主調(diào)過程獲取到該返回值。如果沒有“函數(shù)過程名=表達(dá)式”這條語句,則Function過程返回一個(gè)默認(rèn)值,其中數(shù)值類型函數(shù)過程返回0,字符串型函數(shù)過程返回一個(gè)空字符串,Variant類型函數(shù)過程返回Empty。例8-2定義一個(gè)求絕對(duì)值的函數(shù)過程8.2.2Function過程的調(diào)用自定義Function過程的調(diào)用與VB內(nèi)部函數(shù)的調(diào)用方法一樣,其一般形式為:【格式】函數(shù)過程名([實(shí)參列表])Function過程的調(diào)用同Sub過程一樣,一旦調(diào)用一個(gè)Function過程,將轉(zhuǎn)去執(zhí)行相應(yīng)的Function過程的程序代碼。但所不同的是,F(xiàn)unction過程調(diào)用結(jié)束時(shí),其運(yùn)算結(jié)果將返回到主調(diào)程序。因此,F(xiàn)unction過程的調(diào)用一般不能作為單獨(dú)的一條語句出現(xiàn),而是必須出現(xiàn)在表達(dá)式中。例8-3,編寫計(jì)算階乘的函數(shù)Fact,并求1!+2!+...+10!的結(jié)果。例8-4,求2-100之間的質(zhì)數(shù)。8.3過程中的參數(shù)傳遞在調(diào)用過程時(shí),主調(diào)過程和被調(diào)過程之間會(huì)有一些數(shù)據(jù)信息的傳遞,這種數(shù)據(jù)信息傳遞是雙向的:主調(diào)過程要求被調(diào)過程根據(jù)其給出的數(shù)據(jù)信息進(jìn)行相應(yīng)的處理,而被調(diào)過程往往要將處理所得的結(jié)果再傳回主調(diào)過程。主調(diào)過程和被調(diào)過程之間的信息傳遞有兩種方式:通過非局部變量傳遞或通過參數(shù)傳遞。通過非局部變量傳遞是指在過程中直接處理非局部變量,如模塊級(jí)變量,能夠在多個(gè)不同的過程中使用,從而實(shí)現(xiàn)在過程之間的信息傳遞。通過參數(shù)傳遞是指在調(diào)用過程時(shí),主調(diào)過程給出的實(shí)際參數(shù)和被調(diào)過程中的形式參數(shù)相結(jié)合,即“虛實(shí)結(jié)合”的方式,將主調(diào)過程中的實(shí)際參數(shù)所包含的數(shù)據(jù)信息傳遞給被調(diào)過程中的形式參數(shù)。8.3.1形式參數(shù)和實(shí)際參數(shù)形式參數(shù)是指在定義過程時(shí),出現(xiàn)在Sub或Function語句的參數(shù)列表中的變量,用于接收從主調(diào)過程傳遞來的數(shù)據(jù)。實(shí)際參數(shù)是指在調(diào)用過程時(shí),過程調(diào)用語句的參數(shù)列表中出現(xiàn)的實(shí)際的量,代表了傳遞給形參的數(shù)據(jù)信息。根據(jù)定義過程時(shí)對(duì)于形式參數(shù)的聲明,實(shí)際參數(shù)可以是常量、變量、表達(dá)式或數(shù)組等。8.3.1形式參數(shù)和實(shí)際參數(shù)在定義過程時(shí),形式參數(shù)的語法格式如下:[ByVal|ByRef][Optional][ParamArray]形參名[()][As類型][=缺省值]【說明】[ByVal|ByRef],用于規(guī)定參數(shù)的傳遞方式。ByVal表示該參數(shù)按值傳遞;ByRef表示該參數(shù)按地址傳遞。缺省時(shí)是ByRef方式。[Optional],表明該參數(shù)是可選的。若某參數(shù)是可選的,則在形參列表中該參數(shù)后面的所有參數(shù)都必須是可選的,即都要用Optional關(guān)鍵字來聲明。[ParamArray],僅用于形參列表中的最后一個(gè)參數(shù),說明該參數(shù)是由不定個(gè)數(shù)的Variant類型的元素所組成的一個(gè)數(shù)組。形參名[()],用于規(guī)定形式參數(shù)的名稱。如果形式參數(shù)是數(shù)組,則要在數(shù)組名后加一對(duì)空的圓括號(hào)。[As類型],用于規(guī)定形式參數(shù)的數(shù)據(jù)類型,缺省時(shí)為Variant類型。對(duì)于String類型的形式參數(shù),它只支持變長字符串。但在調(diào)用過程時(shí),實(shí)際參數(shù)可以是定長字符串;在使用用戶自定義數(shù)據(jù)類型作為形式參數(shù)的數(shù)據(jù)類型時(shí),形式參數(shù)的前面不能使用Optional關(guān)鍵字。[=缺省值],只對(duì)Optional參數(shù)適用,表示該參數(shù)缺省時(shí)的值。缺省值可以是任何常量或常量表達(dá)式,但當(dāng)參數(shù)的類型為Object時(shí),顯式的缺省值只能取Nothing。8.3.1形式參數(shù)和實(shí)際參數(shù)需要特別說明的是:在定義形式參數(shù)時(shí)只能使用變量或數(shù)組,不能使用常量來定義形式參數(shù)。只有在調(diào)用帶參數(shù)的過程時(shí),才為形式參數(shù)分配內(nèi)存單元,并且接收由實(shí)參傳遞過來的數(shù)據(jù);當(dāng)過程調(diào)用結(jié)束后,形式參數(shù)所占據(jù)的存儲(chǔ)單元也同時(shí)被釋放。因此,形式參數(shù)和實(shí)際參數(shù)重名并不發(fā)生沖突。在過程被調(diào)用時(shí),形式參數(shù)接受由實(shí)際參數(shù)傳遞過來的數(shù)據(jù),第一個(gè)形參接收第一個(gè)實(shí)參,第二個(gè)形參接收第二個(gè)實(shí)參,以此類推。例如:8.3.1形式參數(shù)和實(shí)際參數(shù)實(shí)際參數(shù)和形式參數(shù)要具有一一對(duì)應(yīng)的關(guān)系,在調(diào)用過程時(shí)需注意:實(shí)參與形參的個(gè)數(shù)應(yīng)相等(不定數(shù)量參數(shù)除外)。實(shí)參和形參的順序和位置要一一對(duì)應(yīng)。各參數(shù)之間用逗號(hào)隔開,對(duì)于可選的形式參數(shù)即使在調(diào)用過程時(shí)沒有提供實(shí)際參數(shù),也要用逗號(hào)空出其位置。實(shí)參和形參的數(shù)據(jù)類型要相符。類型相符是根據(jù)參數(shù)的傳遞方式而言的,對(duì)于按值傳遞的參數(shù)要求實(shí)參和形參賦值相容;而對(duì)于按地址傳遞的參數(shù)則要求實(shí)參和形參的類型必須相同。8.3.2參數(shù)的傳遞方式在調(diào)用過程時(shí),實(shí)際參數(shù)和形式參數(shù)之間的數(shù)據(jù)傳遞方式分為兩種:按值傳遞(ByVal)、按地址傳遞(ByRef)。在默認(rèn)情況下,變量(簡單變量、數(shù)組或數(shù)組元素等)都按地址傳送給Sub或Function過程。在這種情況下,過程中使用的變量是實(shí)際傳送的變量本身。這意味著,當(dāng)按地址傳送參數(shù)時(shí),有可能改變傳送給過程的變量的值。8.3.2參數(shù)的傳遞方式按值傳遞:如果在調(diào)用過程時(shí)實(shí)參是常量或表達(dá)式,或者在定義過程時(shí)形參前有關(guān)鍵字ByVal,則該參數(shù)是按值傳遞的,即在調(diào)用過程時(shí)是將實(shí)際參數(shù)的值復(fù)制一份傳遞給形式參數(shù),此后形式參數(shù)與實(shí)際參數(shù)之間沒有任何聯(lián)系,在過程中對(duì)形式參數(shù)所做的任何改變不會(huì)影響到實(shí)際參數(shù)。按值傳遞時(shí),實(shí)參和形參各有內(nèi)存單元,主調(diào)與被調(diào)過程之間不會(huì)相互干擾,可以提高程序的可靠性并且便于調(diào)試。所以調(diào)用過程時(shí)最好采用傳值方式,除非希望被調(diào)過程改變實(shí)參的值。例8-5,按值傳遞參數(shù)示例8.3.2參數(shù)的傳遞方式按地址傳遞如果在定義過程時(shí),形參前有關(guān)鍵字ByRef或缺省,并且在調(diào)用過程時(shí)實(shí)參是變量,則該參數(shù)按地址傳遞,稱為按引用傳遞參數(shù)。按地址傳遞參數(shù)時(shí),實(shí)參和形參的結(jié)合方式是:在調(diào)用過程時(shí)將實(shí)參的地址傳遞給形參,即形參與實(shí)參共用同一地址的內(nèi)存單元。因此,在被調(diào)過程中對(duì)形參的任何改變都會(huì)影響到實(shí)參。按地址傳遞參數(shù)時(shí),形參和實(shí)參共用同一個(gè)內(nèi)存單元,因此實(shí)參和形參的數(shù)據(jù)類型要相同,否則就會(huì)出錯(cuò)。例8-6、8-7、8-8,按地址傳遞參數(shù)的不同形式8.3.3數(shù)組參數(shù)的傳遞在調(diào)用過程時(shí),可以把數(shù)組元素作為實(shí)參傳遞給被調(diào)過程,也可以把整個(gè)數(shù)組作為一個(gè)參數(shù)傳遞給被調(diào)過程。傳遞數(shù)組元素如果要傳遞數(shù)組中的某一元素,只要在調(diào)用過程時(shí)將其作為實(shí)參即可,如:CallinputSub(a(2),6)其中a(2)為數(shù)組元素,inputSub是被調(diào)過程的名稱。注:數(shù)組元素作為參數(shù)傳遞的用法與單個(gè)變量作為參數(shù)相同,也可以按值或按地址傳遞給過程。8.3.3數(shù)組參數(shù)的傳遞傳遞整個(gè)數(shù)組在將整個(gè)數(shù)組作為一個(gè)參數(shù)傳遞給過程時(shí),需要注意以下幾點(diǎn):定義過程時(shí),要在形參名后加一堆空的圓括號(hào),將其聲明為數(shù)組;而且因?yàn)檫^程被調(diào)用前無法預(yù)知數(shù)組的大小和維數(shù),因此將形參聲明為一個(gè)動(dòng)態(tài)數(shù)組。調(diào)用過程時(shí),將固定大小和維數(shù)的數(shù)組名稱作為實(shí)參傳遞給被調(diào)過程的形參,不必包括維數(shù)和圓括號(hào)。在過程中定義時(shí),數(shù)組作為參數(shù)要求必須以ByRef方式傳遞,因此,要求形參和實(shí)參數(shù)組的數(shù)據(jù)類型必須要相同,否則就要出錯(cuò)。在過程定義時(shí),可以在最后一個(gè)參數(shù)的位置使用ParamArray關(guān)鍵字定義一個(gè)可變類型的動(dòng)態(tài)數(shù)組,該參數(shù)為可選參數(shù),且由不定個(gè)數(shù)的Variant類型的元素組成。例8-9,編寫一個(gè)參數(shù)為數(shù)組的過程,能夠?qū)?shù)組中的元素按從大到小排列。例8-10,編寫一個(gè)過程,求任意一組數(shù)的最大、最小值。8.4過程的嵌套和遞歸調(diào)用過程的嵌套和遞歸調(diào)用是過程調(diào)用的特殊形式,遵循過程調(diào)用的基本原則。其中嵌套調(diào)用是過程調(diào)用時(shí)又去調(diào)用其它的過程,調(diào)用關(guān)系類型與樹形結(jié)構(gòu);而遞歸調(diào)用是過程對(duì)自身的重復(fù)調(diào)用,類似于過程調(diào)用的循環(huán)。8.4.1過程的嵌套調(diào)用在VB中過程的定義是相互獨(dú)立的,不允許嵌套定義,即在定義過程時(shí),一個(gè)過程中不能包含另一個(gè)過程的定義。但是,過程的調(diào)用允許嵌套,即主調(diào)過程調(diào)用某個(gè)被調(diào)過程,而在被調(diào)用過程中還可以調(diào)用另外的過程,這稱為過程的嵌套調(diào)用,如圖8-11所示。由此可見,主調(diào)過程和被調(diào)過程是一個(gè)相對(duì)的概念。圖8-11過程的嵌套調(diào)用過程A┆調(diào)用過程B語句i┆過程結(jié)束過程B┆調(diào)用過程C語句k┆過程結(jié)束過程C┆過程結(jié)束例8-11,使用嵌套調(diào)用的方式,求組合數(shù)8.4.2過程的遞歸調(diào)用在VB中,過程直接或間接調(diào)用它自身,稱為遞歸調(diào)用。遞歸調(diào)用是一種特殊的嵌套調(diào)用情況。過程P直接調(diào)用P本身,稱為直接調(diào)用;過程P調(diào)用過程Q,在過程Q中又調(diào)用過程P,稱為間接調(diào)用。本節(jié)只討論直接調(diào)用。在程序中采用遞歸的方法,可以使程序語言的描述與問題的自然描述一致,能夠用簡短清晰的程序解決復(fù)雜的問題,因而對(duì)于那些具有遞歸結(jié)構(gòu)的問題解決非常有用。一個(gè)問題需要采用遞歸的方法來解決時(shí),必須符合以下兩個(gè)條件:具有遞歸形式即可以把要解決的問題轉(zhuǎn)化為一個(gè)新問題,而這個(gè)新問題的解決仍與原來的問題解法相同,只是所處理的數(shù)據(jù)有規(guī)律地遞增或遞減,并且通過這個(gè)轉(zhuǎn)化過程能夠使問題最終得到解決。必須有一個(gè)明確的結(jié)束遞歸的條件例8-12,用遞歸的方法求N!例8-13,用遞歸法求m和n的最大公約數(shù)8.5代碼模塊VB的應(yīng)用程序是以工程為主體的,其中每一個(gè)工程可包含若干個(gè)不同的模塊,每個(gè)模塊又是以過程為單元進(jìn)行代碼的組織和使用的,代碼最終存儲(chǔ)在不同的模塊中。VB的代碼模塊有三種類型,即窗體模塊、標(biāo)準(zhǔn)模塊和類模塊,在工程中按照類別進(jìn)行分層組織,如右圖所示。其中標(biāo)準(zhǔn)模塊通常簡稱為模塊。8.5.1窗體模塊窗體模塊是VB應(yīng)用程序的基礎(chǔ),作為應(yīng)用程序界面的重要組成部分,是用戶與VB應(yīng)用程序進(jìn)行交互的主要方式。在VB的工程中,每一個(gè)窗體都對(duì)應(yīng)一個(gè)窗體模塊,窗體模塊保存在擴(kuò)展名為.frm的文件中。窗體模塊主要包含三部分內(nèi)容,一是跟窗體有關(guān)的事件處理過程、通用過程(包括Sub過程和Function過程);二是窗體級(jí)的常量、變量、類型定義以及外部過程的聲明;三是窗體的大小、顏色、所含的各種控件的屬性設(shè)置等信息。如果在文本編輯器中打開窗體模塊,就會(huì)看到關(guān)于窗體以及控件的描述,包括它們的屬性設(shè)置等。默認(rèn)情況下,VB的工程中只包含一個(gè)窗體,可以根據(jù)需要添加多個(gè)窗體。如在“工程”菜單中執(zhí)行“添加窗體”命令,在打開的“添加窗體”對(duì)話框中,可以選擇“新建”一個(gè)窗體或者從“現(xiàn)存”選項(xiàng)卡中選擇添加一個(gè)已經(jīng)創(chuàng)建并保存的窗體。每一個(gè)新添加的窗體都將單獨(dú)保存,并在VB的“工程資源管理器”窗口中顯示。8.5.2標(biāo)準(zhǔn)模塊在VB的應(yīng)用程序中,一個(gè)工程可以包含多個(gè)窗體,這些窗體要執(zhí)行的公共代碼部分可以從窗體中獨(dú)立出來,存放于標(biāo)準(zhǔn)模塊中。通過標(biāo)準(zhǔn)模塊的使用,可以進(jìn)一步提高代碼的可重用性,增加代碼的模塊化和可讀性。標(biāo)準(zhǔn)模塊保存在擴(kuò)展名為.bas的文件中,通常包含變量、常量、類型定義、外部過程和通用過程的全局級(jí)或模塊級(jí)聲明。在缺省的情況下,標(biāo)準(zhǔn)模塊中的聲明都是全局級(jí)的,只有用關(guān)鍵字Private或Dim所作的聲明才是模塊級(jí)的。全局變量可以用Public或Global關(guān)鍵字進(jìn)行聲明。標(biāo)準(zhǔn)模塊可以脫離特定的應(yīng)用程序,也就是說在不同的應(yīng)用程序中可以重用標(biāo)準(zhǔn)模塊,只要將標(biāo)準(zhǔn)模塊添加到當(dāng)前的應(yīng)用程序中即可。8.5.2標(biāo)準(zhǔn)模塊創(chuàng)建標(biāo)準(zhǔn)模塊設(shè)置啟動(dòng)對(duì)象在標(biāo)準(zhǔn)模塊中,可以創(chuàng)建一個(gè)特殊的Sub子過程,即Main子程序過程,而且即使有多個(gè)標(biāo)準(zhǔn)模塊,也只能在一個(gè)標(biāo)準(zhǔn)模塊中創(chuàng)建一個(gè)SubMain子過程。其特殊性就在于SubMain子過程可以作為VB整個(gè)應(yīng)用程序的啟動(dòng)對(duì)象。要把SubMain作為啟動(dòng)對(duì)象,可以執(zhí)行“工程”菜單的“工程屬性”命令,在打開的“工程屬性”對(duì)話框中,可設(shè)置“啟動(dòng)對(duì)象”為SubMain,當(dāng)然也可以設(shè)置工程中的一個(gè)窗體作為啟動(dòng)對(duì)象。作為啟動(dòng)對(duì)象的SubMain子過程就是在標(biāo)準(zhǔn)模塊中創(chuàng)建的Main子程序過程。8.5.3類模塊類模塊是面向?qū)ο缶幊痰幕A(chǔ),它保存在擴(kuò)展名為.cls的文件中。類模塊代表了一個(gè)類的模板,據(jù)此可以創(chuàng)建新的對(duì)象。類模塊既包含數(shù)據(jù),又包含代碼,分別描述了從該類創(chuàng)建的對(duì)象的特征和行為,可以看做是沒有物理表示的對(duì)象。類模塊的創(chuàng)建和使用方法,在此不做介紹。8.6過程的作用域過程調(diào)用時(shí),必須考慮其作用域問題。8.6.1過程的作用域過程同變量一樣,需要考慮過程的作用域問題。按照過程定義時(shí)所在的模塊位置以及采用的關(guān)鍵字的不同,過程的作用域分為模塊級(jí)和全局級(jí)。其中,模塊級(jí)也稱為文件級(jí);全局級(jí)也稱為工程級(jí)。全局級(jí):在用戶自定義的子程序和函數(shù)過程前不加任何關(guān)鍵字,或
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版數(shù)據(jù)中心建筑施工總承包合同2篇
- 油田工程管理課程設(shè)計(jì)
- 2025年度高職高專土建專業(yè)實(shí)踐教學(xué)基地建設(shè)合同3篇
- 物聯(lián)網(wǎng)硬件基礎(chǔ)課程設(shè)計(jì)
- 大數(shù)據(jù)運(yùn)算課程設(shè)計(jì)報(bào)告
- 聚合纖維的機(jī)械加工技術(shù)考核試卷
- 2025年度PE管材產(chǎn)品溯源與質(zhì)量追溯服務(wù)合同3篇
- 溢洪道側(cè)槽課程設(shè)計(jì)
- 2025年度酒店照明工程驗(yàn)收及保修服務(wù)合同3篇
- 二零二五年度事業(yè)單位借調(diào)和借用合同2篇
- 口腔正畸科普課件
- 2024年廣東省普通高中學(xué)業(yè)水平合格性地理試卷(1月份)
- 住宅樓安全性檢測(cè)鑒定方案
- 配送管理招聘面試題與參考回答2024年
- 江蘇省語文小學(xué)三年級(jí)上學(xué)期期末試題及解答參考(2024年)
- 黑龍江哈爾濱市省實(shí)驗(yàn)中學(xué)2025屆數(shù)學(xué)高一上期末監(jiān)測(cè)試題含解析
- 小學(xué)一年級(jí)數(shù)學(xué)思維訓(xùn)練100題(附答案)
- 安全生產(chǎn)治本攻堅(jiān)三年行動(dòng)方案(一般工貿(mào)) 2024
- 2024年廣東省廣州市黃埔區(qū)中考一模語文試題及答案
- 飯?zhí)脪炜繀f(xié)議合同范本
- 2023-2024學(xué)年遼寧省重點(diǎn)高中沈陽市郊聯(lián)體高二上學(xué)期期末考試生物試題(解析版)
評(píng)論
0/150
提交評(píng)論