vb中窗體模塊,類(lèi)模塊,標(biāo)準(zhǔn)模塊的區(qū)別_第1頁(yè)
vb中窗體模塊,類(lèi)模塊,標(biāo)準(zhǔn)模塊的區(qū)別_第2頁(yè)
vb中窗體模塊,類(lèi)模塊,標(biāo)準(zhǔn)模塊的區(qū)別_第3頁(yè)
vb中窗體模塊,類(lèi)模塊,標(biāo)準(zhǔn)模塊的區(qū)別_第4頁(yè)
vb中窗體模塊,類(lèi)模塊,標(biāo)準(zhǔn)模塊的區(qū)別_第5頁(yè)
已閱讀5頁(yè),還剩10頁(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)介

1、vb中窗體模塊,類(lèi)模塊,標(biāo)準(zhǔn)模塊的區(qū)別學(xué)習(xí)各種高級(jí)外掛制作技術(shù),馬上去百度搜索"魔鬼作坊",點(diǎn)擊第一個(gè)站進(jìn)入,快速成為做掛達(dá)人。VB的代碼存儲(chǔ)在模塊中。在VB中提供了三種類(lèi)型的模塊:窗體模塊、標(biāo)準(zhǔn)模塊和類(lèi)模塊。簡(jiǎn)單的應(yīng)用程序可以只有一個(gè)窗體,所用的程序都駐留在窗體模塊中,而當(dāng)應(yīng)用程序龐大復(fù)雜時(shí),就要另外附加窗體。最終可能有幾個(gè)窗體中有一些共同都要執(zhí)行的代碼,為了在兩個(gè)窗體中不產(chǎn)生重復(fù)代碼,可創(chuàng)建一個(gè)獨(dú)立的模塊,用它實(shí)現(xiàn)代碼公用。該獨(dú)立模塊即是標(biāo)準(zhǔn)模塊。此外還可以建立包含共享代碼與數(shù)據(jù)的類(lèi)模塊。每個(gè)標(biāo)準(zhǔn)模塊、類(lèi)模塊和窗體模塊可包含:聲明??蓪⒊?shù)、類(lèi)型、變量和動(dòng)態(tài)鏈接庫(kù)(DL

2、L)過(guò)程的聲明放在窗體、類(lèi)或標(biāo)準(zhǔn)模塊的聲明部分。每個(gè)模塊只有一個(gè)聲明部分過(guò)程。每個(gè)模塊可有多個(gè)過(guò)程,過(guò)程是劃分VB代碼的最小單元,每個(gè)過(guò)程是一個(gè)可執(zhí)行的代碼片段。VB中主要有子過(guò)程、函數(shù)過(guò)程或者屬性過(guò)程等各種模塊類(lèi)型1. 窗體模塊由于VB是面向?qū)ο蟮膽?yīng)用程序開(kāi)發(fā)工具,所以應(yīng)用程序的代碼結(jié)構(gòu)就是該程序在屏幕上表示的對(duì)應(yīng)模型。根據(jù)定交,對(duì)象包含數(shù)據(jù)和代碼。應(yīng)用程序中的每個(gè)窗體都有一個(gè)相對(duì)應(yīng)的窗體模塊(文件擴(kuò)展名為.frm)窗體模塊是VB應(yīng)用程序的基礎(chǔ)。窗體模塊可以包含處理事件的過(guò)程、通用過(guò)程以及變量、常數(shù)、自定義類(lèi)型和外部過(guò)程的窗體級(jí)聲明。寫(xiě)入窗體模塊的代碼是該窗體所屬的具體應(yīng)用程序?qū)S玫模灰部梢?/p>

3、引用該程序內(nèi)的其它窗體和對(duì)象每個(gè)窗體模塊都包含事件過(guò)程,在事件過(guò)程中有為響應(yīng)該事件而執(zhí)行的程序段。窗體可包含控件。在窗體模塊中,對(duì)窗體上的每個(gè)控件都有一個(gè)對(duì)應(yīng)的事件過(guò)程集。除了事件過(guò)程,窗體模塊還可包含通用過(guò)程,它對(duì)來(lái)自該窗體中任何事件過(guò)程的調(diào)用都作出響應(yīng)。2. 標(biāo)準(zhǔn)模塊標(biāo)準(zhǔn)模塊是程序中的一個(gè)獨(dú)立容器,包含全局變量、Function(函數(shù))過(guò)程和Sub過(guò)程(子過(guò)程)??蓪⒛切┡c特定窗體或控件無(wú)關(guān)的代碼放入標(biāo)準(zhǔn)模塊中。標(biāo)準(zhǔn)模塊中包含應(yīng)用程序內(nèi)的允許其它模塊訪問(wèn)的過(guò)程和聲明。它們可以包含變量、常數(shù)、類(lèi)型、外部過(guò)程和全局聲明或模塊級(jí)聲明。寫(xiě)入標(biāo)準(zhǔn)模塊的代碼不必固定在特定的應(yīng)用程序上;(1)使用標(biāo)準(zhǔn)模

4、塊在編寫(xiě)程序時(shí),很可能會(huì)遇到一些使用相同變量和例程的窗體和事件過(guò)程。在缺省狀態(tài)下,變量對(duì)于事件過(guò)程來(lái)說(shuō)是局部的,就是說(shuō)僅能在創(chuàng)建這些變量的事件過(guò)程中讀取或者修改變量。與之相似,事件過(guò)程對(duì)于創(chuàng)建它們的窗體來(lái)說(shuō)也是局部。為了在工程中的所有窗體和事件中共享變量和過(guò)程,需要在該工程的一個(gè)或多個(gè)標(biāo)準(zhǔn)模塊中對(duì)它們進(jìn)行聲明和定義。標(biāo)準(zhǔn)模塊或代碼模塊是具有文件擴(kuò)展名.bas,并包含能夠在程序任何地方使用的變量和過(guò)程的特殊文件。正如窗體一樣,標(biāo)準(zhǔn)模塊被單獨(dú)列在Project(工程)窗口內(nèi),并可通過(guò)使用File(文件)菜單中的SaveModulelAs菜單項(xiàng)存盤(pán)。但是,與窗體不同,標(biāo)準(zhǔn)模塊不包含對(duì)象或?qū)傩栽O(shè)置而只

5、包含可在代碼窗口中顯示和編輯的代碼。(2)創(chuàng)建標(biāo)準(zhǔn)模塊如要在程序中創(chuàng)建新的標(biāo)準(zhǔn)模塊,那么單擊工具條AddForm(添加窗體)按鈕上的下箭頭并單擊Mode(模塊),或者單擊Project(工程)菜單中的AddModule(添加模塊)菜單項(xiàng)。在工程中創(chuàng)建一個(gè)空的標(biāo)準(zhǔn)模塊的步驟如下:51 :啟動(dòng)VB,打開(kāi)一個(gè)新的標(biāo)準(zhǔn)工程,單擊工程菜單中的AddModule菜單項(xiàng),單擊Open按鈕。VB在工程中增加一個(gè)名為Module的標(biāo)準(zhǔn)模塊。該模塊對(duì)應(yīng)的代碼窗口被打開(kāi),對(duì)象和過(guò)程列表框的內(nèi)容表明該標(biāo)準(zhǔn)模塊的通用聲明已被打開(kāi)。在此所聲明的變量與過(guò)程在整個(gè)程序都可以使用。52 :雙擊工程資源管理器窗口的標(biāo)題條,以便能

6、看到整個(gè)工程資源管理器窗口,53 :在File(文件)菜單中,單擊SaveModulelAsS4:如果D:VB6sbsless10文件夾未被選擇時(shí),選擇該文件夾,鍵入MyTestMod.bas,然后按回車(chē)。該標(biāo)準(zhǔn)模塊作為MyTestMod.bass文件保存到磁盤(pán),并且可以通過(guò)Project(工程)的AddFile菜單項(xiàng)可將此文件通過(guò)其文件名加載到另一個(gè)工程中S5:雙擊Project(屬性)窗口標(biāo)題條。由于模塊不包含對(duì)象,因此它惟一的屬性就是NameS6:將Name屬性改為modVariables,然后按ENTER鍵。(3)聲明公用變量在標(biāo)準(zhǔn)模塊中聲明全局變量十分簡(jiǎn)單,鍵入關(guān)鍵字Public,后

7、跟該變量名。缺省狀態(tài)下,公用就量在模塊中被聲明為變體類(lèi)型,但是可以通過(guò)使用As關(guān)鍵字來(lái)指定相應(yīng)類(lèi)型,可以把公用變量聲明為某個(gè)指定的基本類(lèi)型。3. 類(lèi)模塊在VB中類(lèi)模塊是面向?qū)ο缶幊痰幕A(chǔ)??梢栽陬?lèi)模塊中編寫(xiě)代碼建立新對(duì)象。這些新對(duì)象可以包含自定義的屬性和方法。實(shí)際上,窗體正是這樣一種類(lèi)模塊,在其上可安放控件,可顯示窗體窗口用類(lèi)模塊創(chuàng)建對(duì)象,這些對(duì)象可被應(yīng)用程序內(nèi)的過(guò)程調(diào)用。標(biāo)準(zhǔn)模塊只包含代碼,而類(lèi)模塊包含代碼又包含數(shù)據(jù),可視為沒(méi)有物理表示的控件。模塊設(shè)計(jì)的考慮在VB中創(chuàng)建應(yīng)用程序的最重要的部分是設(shè)計(jì)階段。首先需要為應(yīng)用程序設(shè)計(jì)一個(gè)用戶界面,這個(gè)界面的設(shè)計(jì)比較容易確定。但設(shè)計(jì)代碼的結(jié)構(gòu)就是一項(xiàng)較

8、復(fù)雜的工作。構(gòu)造應(yīng)用程序的方法不同,可能會(huì)造成應(yīng)用程序的性能以及代碼的可維護(hù)性,可使用性不同。VB應(yīng)用程序呈層次結(jié)構(gòu)。典型應(yīng)用程序包括若干個(gè)模塊:應(yīng)用程序中每個(gè)窗體的窗體模塊、共享代碼的標(biāo)準(zhǔn)模塊和類(lèi)模塊。每個(gè)模塊包含若干含有代碼的過(guò)程:Event過(guò)程,Sub過(guò)程或Function過(guò)程及Property過(guò)程。在很多情況中都存在著多個(gè)對(duì)象共享的重復(fù)過(guò)程。這種情況最好創(chuàng)建一個(gè)共享的子過(guò)程,使大家都可以調(diào)用它。即使將來(lái)修改這些子程序,則只在一個(gè)地方修改就可進(jìn)行全部修改,這將大大提高程序的可讀性和可維護(hù)性??梢园阉械墓蚕聿僮鞣旁跇?biāo)準(zhǔn)的模塊中。代碼編輯器VB代碼編輯器是一個(gè)窗口,大多數(shù)代碼都在此窗口上編

9、寫(xiě)。有許多便于編寫(xiě)VB代碼的功能。在每個(gè)模塊中,對(duì)于模塊中包含的每個(gè)對(duì)象,將模塊中的代碼再細(xì)分出與對(duì)象對(duì)應(yīng)的獨(dú)立部分用"對(duì)象列表框"實(shí)現(xiàn)各對(duì)象間的切換。對(duì)于模塊,列表包含一個(gè)通用段和一個(gè)類(lèi)段;對(duì)于標(biāo)準(zhǔn)模塊,只有一個(gè)通用段被顯示。每一段代碼都可包含若干個(gè)用"過(guò)程列表框"訪問(wèn)的不同過(guò)程。對(duì)窗體或控件的每一個(gè)事件過(guò)程,窗體模塊的過(guò)程列表都包含一個(gè)獨(dú)立的段。類(lèi)模塊只列舉本身的事件從初始化到終止。標(biāo)準(zhǔn)模塊的過(guò)程列舉任何事件過(guò)程,因?yàn)闃?biāo)準(zhǔn)模塊不支持事件。模塊通用段的過(guò)程列表只包含聲明段,其中放置模塊級(jí)的變量、常數(shù)和DLL聲明VB代碼編輯器的一些功能和用法:1. 自動(dòng)

10、完成編碼VB能自動(dòng)填充語(yǔ)句、屬性和參數(shù),這些性能使編寫(xiě)代碼更加方便。在輸入代碼時(shí),編輯器列舉適當(dāng)?shù)倪x擇。通過(guò)"工具"菜單上的"選項(xiàng)"命令訪問(wèn)"選項(xiàng)"對(duì)話框,在"選項(xiàng)"對(duì)話框的"編輯器"選項(xiàng)卡上可以選擇"自動(dòng)列出成員特性",由它們決定是允許還禁止代各碼的設(shè)置值。在代碼中輸入一控件名時(shí),"自動(dòng)列出成員特性"會(huì)顯示出這個(gè)控件的下拉式屬性表。鍵入屬性名的前幾個(gè)字母,就會(huì)從表中選中該名字,按Tab鍵將完成輸入。當(dāng)不能確認(rèn)給定的控件有什么樣的屬性時(shí),這個(gè)選項(xiàng)是非常有幫

11、助的。即使選擇了禁止"自動(dòng)列出成員特性",仍可使用CTRL+J組合鍵得到這種性能。"自動(dòng)快速信息"功能可顯示語(yǔ)句和函數(shù)的語(yǔ)法。2. 書(shū)簽在代碼編輯器中書(shū)簽可用來(lái)標(biāo)記代碼的某些行,以便以后可以很容易地返回這些行。書(shū)簽開(kāi)關(guān)的切換以及定位到已有書(shū)簽的命令可以在編輯菜單中書(shū)簽選項(xiàng)中得到。過(guò)程過(guò)程概述一個(gè)應(yīng)用程序是由若干模塊組成的,而每個(gè)模塊又是由若干個(gè)更小的代碼片段組成,將組成這些模塊的代碼片段稱為過(guò)程。通過(guò)過(guò)程,可以將整個(gè)程序按功能進(jìn)行分塊,每個(gè)過(guò)程用來(lái)完成一項(xiàng)特定的功能。使用過(guò)程來(lái)組織代碼,不僅可以使程序的結(jié)構(gòu)更加清晰,而且便于查找和修改代碼。當(dāng)在其它工程中

12、使用某個(gè)相同功能時(shí),可以將過(guò)程作為可重用的代碼,直接拿到該工程中使用。1. VB是過(guò)程基本分類(lèi):函數(shù)過(guò)程(Functi9onProcedure):函數(shù)過(guò)程用來(lái)完成特定的功能并返回相應(yīng)的結(jié)果。在事件或其它過(guò)程中可按名稱調(diào)用函數(shù)。函數(shù)過(guò)程能夠接收參數(shù),并且總是以該函數(shù)名返回一個(gè)值。這類(lèi)過(guò)程一般用于完成計(jì)算任務(wù)。子過(guò)程:子過(guò)程是沒(méi)有返回值的函數(shù)。在事件過(guò)程或其它過(guò)程中可按名稱調(diào)用子過(guò)程。子過(guò)程能夠接收到參數(shù),并可用于完成過(guò)程中的任務(wù)并返回一些數(shù)值。但是,與函數(shù)過(guò)程不同,子過(guò)程不返回與其特定子過(guò)程名相關(guān)聯(lián)的值。子過(guò)程一般用于接收或處理輸入數(shù)據(jù)、顯示輸出或者設(shè)置屬性。屬性過(guò)程:屬性過(guò)程用來(lái)創(chuàng)建和操作程序

13、中用戶定義的屬性。這是一種有用的,在某種程度上相當(dāng)高級(jí)的特性,它使能夠定制現(xiàn)有的VB控件并通過(guò)創(chuàng)建新的對(duì)象,屬性和方法來(lái)擴(kuò)展VB語(yǔ)言通用過(guò)程:允許把一個(gè)經(jīng)常用到的過(guò)程以熟悉的名稱寫(xiě)入某個(gè)標(biāo)準(zhǔn)模塊中。2. 使用過(guò)程編程的優(yōu)點(diǎn)消除了重復(fù)語(yǔ)句行。使程序更易閱讀。簡(jiǎn)化了程序開(kāi)發(fā)其它程序可重復(fù)使用該通用過(guò)程擴(kuò)展VB語(yǔ)言子過(guò)程子過(guò)程是在響應(yīng)事件時(shí)執(zhí)行的程序段。將模塊中的代碼分成子過(guò)程后,在應(yīng)用程序中查找和修改代碼變得更容易了,子過(guò)程類(lèi)似于用戶自定義函數(shù),不同之處是子過(guò)程不返回與其名稱相關(guān)聯(lián)的值,子過(guò)程一般用來(lái)從用戶那里得到輸入數(shù)據(jù)、顯示或打印信息,或者操縱與某一條件相關(guān)的幾種屬性。子過(guò)程也用來(lái)在過(guò)程調(diào)用中

14、處理和返回若干個(gè)變量。1. 子過(guò)程的語(yǔ)法(1)子過(guò)程語(yǔ)法Private|Public|FriendStaticSub過(guò)程名(參數(shù)表)程序段Exitsub程序段EndSubSub語(yǔ)句的語(yǔ)法包含下面部分:Public可選的。表示所有模塊的所有其它過(guò)程都可訪問(wèn)這個(gè)Sub過(guò)程。如果在包含OptionPrivate的模塊中使用,則這個(gè)過(guò)程在該工程外是不可使用的Private可選的。表示只有在包含其聲明的模塊中的其它過(guò)程可以訪問(wèn)該Sub過(guò)程Friend可選的。只能在類(lèi)模塊中使用。表示該Sub過(guò)程在整個(gè)工程中都可見(jiàn)的,但對(duì)對(duì)象實(shí)例的控件者是不可見(jiàn)的。Static可選的。表示在調(diào)用之間保留Sub過(guò)程的局部就量

15、的值Static屬性對(duì)在Sub外聲明的變量不會(huì)產(chǎn)生影響,即使過(guò)程中也使用了這些變量。過(guò)程名是必需。Sub的名稱遵循標(biāo)準(zhǔn)的變量命名約定。參數(shù)表是可選的。代表在調(diào)用時(shí)要傳遞給Sub過(guò)程的參數(shù)的變量列表。多個(gè)變量由用逗號(hào)隔開(kāi)需要說(shuō)明:如果沒(méi)有使用Private,Public或Friend,Sub過(guò)程在缺省情況是公用的。如果沒(méi)有使用Static,則在調(diào)用之后不會(huì)保留變量的值。Friend關(guān)鍵字只能在類(lèi)模塊中使用。不過(guò)Friend過(guò)程可以被工程的任何模塊中的過(guò)程訪問(wèn)。Friend過(guò)程不會(huì)在其父類(lèi)的燈型庫(kù)中出現(xiàn),且Friend過(guò)程不能被后期綁定。2.Sub過(guò)程可以是遞歸的,也就是說(shuō),該過(guò)程可以調(diào)用自己來(lái)完

16、成某個(gè)特定的任務(wù)。不過(guò),遞歸可能會(huì)導(dǎo)致堆棧上溢。通常Static關(guān)鍵字和遞歸的Sub過(guò)程不在一起使用。3. 所有的可執(zhí)行代碼都必須屬于某個(gè)過(guò)程,不能在別的Sub,F(xiàn)unction或Property過(guò)程中定義Sub過(guò)程。4. ExitSub語(yǔ)句使執(zhí)行從一個(gè)Sub過(guò)程中退出。5.Sub過(guò)程與Function過(guò)程的相似之處是:它們都是一個(gè)可以獲取參數(shù),執(zhí)行一系列語(yǔ)句,以及改變其參數(shù)的值的獨(dú)立過(guò)程。而與Function過(guò)程不同的是Sub過(guò)程不能用于表達(dá)式6. 可以使用過(guò)程名并后跟相應(yīng)的參數(shù)列表來(lái)調(diào)用一個(gè)Sub過(guò)程。7. 在Sub過(guò)程中使用的變量分類(lèi)為兩類(lèi):一類(lèi)是在過(guò)程內(nèi)顯示定義的,另一類(lèi)則不是。8.

17、不能使用GoSub,GoTo或Return來(lái)進(jìn)入或退出Sub過(guò)程9每次調(diào)用過(guò)程都會(huì)執(zhí)行Sub和EndSub之間的語(yǔ)句塊。可以將子過(guò)程放入標(biāo)準(zhǔn)模塊、類(lèi)模塊和窗體模塊中。10. 在過(guò)程調(diào)用中,發(fā)送到子過(guò)程的參數(shù)值和類(lèi)型必須與子過(guò)程聲明語(yǔ)句中參數(shù)值和類(lèi)型相符11. 將變量傳遞給過(guò)程被稱為傳遞稱為引用參數(shù),因?yàn)樽兞磕軌虮贿^(guò)程修改并返回給程序。(2)調(diào)用子過(guò)程在程序中調(diào)用子過(guò)程需要指明該過(guò)程的名稱,然后列出子過(guò)程所要求的參數(shù)。例如,要使用文字字符串調(diào)用AddNameToListBox過(guò)程,可以鍵入如下語(yǔ)句:AddNameToListBox"Kimberly"與之相似,通過(guò)鍵入如下語(yǔ)句

18、可以使用變量來(lái)調(diào)用該過(guò)程AddNameToListBoxNewName$在這兩種情況下,AddNameToListBox過(guò)程在列表框中添加確定的名稱。在該過(guò)程中,按值調(diào)用和按址調(diào)用肝產(chǎn)生相似的結(jié)果,因?yàn)樵谶^(guò)程中并未修改該參數(shù)。(3)使用子過(guò)程管理輸入在程序中,當(dāng)信息來(lái)自于兩個(gè)或多個(gè)來(lái)源,并需要采用相同格式時(shí)同,就往往使用子過(guò)程處理所輸入的信息。2. 通用過(guò)程通用過(guò)程表示如何完成一指定的任務(wù)。一旦定義了通用過(guò)程,可由其他過(guò)程來(lái)調(diào)用。建立通用過(guò)程的理由之一就是幾個(gè)不同的事件過(guò)程也許要執(zhí)行同樣的動(dòng)作。將公共語(yǔ)句放入通用過(guò)程,并用事件過(guò)程來(lái)調(diào)用它,這樣就不必重復(fù)代碼,也容易維護(hù)應(yīng)用程序。通用過(guò)程包含在

19、標(biāo)準(zhǔn)模塊中,它可由程序中任何部分調(diào)用。通用過(guò)程與事件過(guò)程不同,因?yàn)樗⒉慌c某個(gè)運(yùn)行事件或使用工具箱控件創(chuàng)建的對(duì)象相關(guān)聯(lián)。通用過(guò)程與VB的內(nèi)建語(yǔ)句和函數(shù)類(lèi)似,它們都名稱調(diào)用、可接收參數(shù)、并且分別完成一特定任務(wù)。3. 事件過(guò)程VB應(yīng)用程序是事件驅(qū)動(dòng)的應(yīng)用程序,事件是窗體或控件所能識(shí)別的動(dòng)作。在響應(yīng)事件時(shí),應(yīng)用程序執(zhí)行代碼。VB的每一個(gè)窗體和控件都存放在一個(gè)預(yù)定義的事件集。運(yùn)行應(yīng)用程序時(shí),當(dāng)某個(gè)事件發(fā)生,而且在與該事件關(guān)聯(lián)的過(guò)程中存在代碼,則VB就會(huì)調(diào)用該事件過(guò)程。因?yàn)槭录^(guò)程的過(guò)程名在對(duì)象和代碼之間建立了聯(lián)系,所以可以說(shuō)事件過(guò)程是附加在窗體和控件上的。每個(gè)事件對(duì)應(yīng)一個(gè)事件過(guò)程,如果讓控件響應(yīng)事件時(shí)

20、就要把相應(yīng)的代碼寫(xiě)入到這個(gè)事件的事件過(guò)程中。一個(gè)控件的事件過(guò)程將控件的實(shí)際名字、下劃線(_)和事件名組合起來(lái)??丶录恼Z(yǔ)法和窗體事件的語(yǔ)法PrivateSubcontrolnake_eventname(參數(shù)表)語(yǔ)句塊ExitSub語(yǔ)句塊EndSubPrivateSubForm_eventname(參數(shù)表)語(yǔ)句塊ExitSub語(yǔ)句塊EndSubFunction過(guò)程VB包含內(nèi)置的或內(nèi)部的函數(shù),還可用Function語(yǔ)句編寫(xiě)自己的Function過(guò)程。在定義了一個(gè)函數(shù)之后,可以像調(diào)用任何一個(gè)VB的內(nèi)部函數(shù)一樣使用它,即可以在任何表達(dá)式,語(yǔ)句或函數(shù)中引用它。函數(shù)過(guò)程是標(biāo)準(zhǔn)模塊中位中Functionn

21、語(yǔ)句與EndFunction語(yǔ)句之間的一系列語(yǔ)句。函數(shù)中的這些語(yǔ)句完成附某些有意義的工作,一般是處理文本,進(jìn)行輸入或計(jì)算一個(gè)值。通過(guò)將函數(shù)名與便條所需的參數(shù)一起置于一條程序語(yǔ)句中,可以調(diào)用該函數(shù)。換句話說(shuō),使用函數(shù)過(guò)程與使用內(nèi)置函數(shù)(比如Time,Int或Str等)的方法完全相同。每個(gè)函數(shù)完成一種服務(wù),比如進(jìn)行計(jì)算并返回一個(gè)值。在標(biāo)準(zhǔn)模塊中聲明的函數(shù)在缺省的狀態(tài)下是公用函數(shù),它們可在任何事件中過(guò)程中使用。1. 函數(shù)過(guò)程的語(yǔ)法數(shù)據(jù)Public|Private|FriendStaticFunctionName(Arglist)As類(lèi)型程序段Name=ExpressionExitFunction程序

22、段Name=ExpressionEndFunctionFunction語(yǔ)句的語(yǔ)法包含下面部分:Public表示所有模塊的所有過(guò)程都可訪問(wèn)這個(gè)Function過(guò)程。如果是在包含OptionPrivate的模塊中使用,則這個(gè)過(guò)程在該工程外是不可使用的。Private表示只有包含其聲明的模塊的過(guò)程要以訪問(wèn)該Function過(guò)程。Friend只能在類(lèi)模塊中使用。表示該Function過(guò)程在整個(gè)工程中都是可見(jiàn)的,但對(duì)于對(duì)象實(shí)例的控制者是不可見(jiàn)的。Static表示在調(diào)用之間將保留Function過(guò)程的局部變量值。Staticc屬性對(duì)在該Function外聲明的變量不會(huì)產(chǎn)生影響,即使過(guò)程中也使用了這些變量。

23、Name是Function的名稱;遵循標(biāo)準(zhǔn)的變量命名約定。Arglist代表在調(diào)用時(shí)要傳遞給Function過(guò)程的參數(shù)變量列表,多個(gè)參數(shù)變量應(yīng)用逗號(hào)隔開(kāi)。數(shù)據(jù)類(lèi)型是Function過(guò)程的返回值的數(shù)據(jù)類(lèi)型,可以是Byte,Boolean,Integer,Long,Currency,Single,Double,Date,Strig(不包含定長(zhǎng)字符串),Object,Variant或任何用戶定義類(lèi)型。程序段是在Function過(guò)程中執(zhí)行的任何語(yǔ)句塊。Expression是Function的返回值。其中的參數(shù)表,參數(shù)的語(yǔ)法以及語(yǔ)法各個(gè)部分如下:OptionByVal|ByRefParamArrayVa

24、rname()As數(shù)據(jù)類(lèi)型=defaultvalueOptional表示參數(shù)不是必需的。如果使用了該選項(xiàng),則Arglist中的后續(xù)參數(shù)都必須是可選的,而且必須都使用Optional關(guān)鍵字聲明。如果使用了ParamArray,則任何參數(shù)都不能使用Optional聲明。ByVal表示該參數(shù)按值傳遞。ByRef表示該參數(shù)按地址傳遞,ByRef是VB的缺省選項(xiàng)。ParamArray只用于Arglist的最后一個(gè)參數(shù),指明最后這個(gè)參數(shù)是一個(gè)Variant元素的Optional數(shù)組。Varname代表參數(shù)的變量的名稱;遵循標(biāo)準(zhǔn)的變量命名約定。數(shù)據(jù)類(lèi)型表示傳遞給該過(guò)程的參數(shù)的數(shù)據(jù)類(lèi)型;可以是Byte,Boo

25、lean,Integer,Long,Currency,Single,Double,Date,String,Object或Variant.defaultvalue表示任何常數(shù)或常數(shù)表達(dá)式,只對(duì)于Option參數(shù)時(shí)是合法的。如果類(lèi)型為Object,則顯示缺省值只能是Nothing簡(jiǎn)要說(shuō)明如下:1.如果沒(méi)有使用Public,Private或Friend顯示指定,則Functionn過(guò)程為公用。如果沒(méi)有使用Static,則局部變量的值在調(diào)用之后不會(huì)保留。Friend關(guān)鍵字只能在類(lèi)模塊中使用。但Friend過(guò)程可以被工程的任何模塊中的過(guò)程訪問(wèn)。Friend過(guò)程不會(huì)在其父類(lèi)的類(lèi)型庫(kù)中出現(xiàn)。2. Function過(guò)程可以是遞歸的;也就是說(shuō),該過(guò)程調(diào)用自己來(lái)完成某個(gè)特定的任務(wù)。不過(guò),遞歸可能會(huì)導(dǎo)致堆棧上溢。通常Static關(guān)鍵字和遞歸Function過(guò)程不在一起使用3. 所有的可執(zhí)行代碼都必須屬于某個(gè)過(guò)程。4. ExitFunction語(yǔ)句使執(zhí)行立即從一個(gè)Function過(guò)程中退出。5. 與Sub過(guò)程一樣,F(xiàn)unction

溫馨提示

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