資源描述:
《它由窗體模塊、標(biāo)準(zhǔn)模塊和類模塊組成vb程序代碼就保存在窗體?!酚蓵T上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、在第二章我們介紹了VB應(yīng)用程序(通常稱為工程)的組織結(jié)構(gòu),它由窗體模塊、標(biāo)準(zhǔn)模塊和類模塊組成。VB程序代碼就保存在窗體模塊文件(*.Frm)、標(biāo)準(zhǔn)模塊文件(*.Bas)或類模塊文件(*.Cls)中。它們形成了工程的一種模塊層次結(jié)構(gòu),如下圖所示。第七章過程和變量的作用域7.1概述一個應(yīng)用程序的組成結(jié)構(gòu)7.1.1窗體模塊(文件擴(kuò)展名為.FRM)窗體模塊。窗體模塊可以包含處理事件的過程、通用過程以及變量、常數(shù)、類型和外部過程的窗體級聲明。如果要在文本編輯器中觀察窗體模塊,則還會看到窗體及其控件的描述,包括它們的屬性
2、設(shè)置值。寫入窗體模塊的代碼是該窗體所屬的具體應(yīng)用程序?qū)S玫?;它也可以引用該?yīng)用程序內(nèi)的其它窗體或?qū)ο蟆?.1.2標(biāo)準(zhǔn)模塊(文件擴(kuò)展名為.BAS)它們可以包含變量、常數(shù)、類型、外部過程和全局過程的全局(在整個應(yīng)用程序范圍內(nèi)有效的)聲明或模塊級聲明。寫入標(biāo)準(zhǔn)模塊的代碼不必綁在特定的應(yīng)用程序上,則在許多不同的應(yīng)用程序中可以重用標(biāo)準(zhǔn)模塊。7.1.3類模塊(文件擴(kuò)展名為.CLS)在VisualBasic中類模塊是面向?qū)ο缶幊痰幕A(chǔ)??稍陬惸K中編寫代碼建立新對象。這些新對象可以包含自定義的屬性和方法。實(shí)際上,窗體正是這
3、樣一種類模塊,在其上可安放控件,可顯示窗體窗口。7.2過程的作用域[Public
4、Private]Sub子過程名([形式參數(shù)列表])…..EndSub概念通用子過程和函數(shù)過程既可寫在窗體模塊中也可寫在標(biāo)準(zhǔn)模塊中,在定義時可選用關(guān)鍵字Private(局部)和Public(全局),來決定它們能被調(diào)用的范圍。1、窗體/模塊級過程:加Private關(guān)鍵字的過程,只能被定義的窗體或模塊中的過程調(diào)用。2、全局級過程:加Public關(guān)鍵字(或缺省)的過程,可供該應(yīng)用程序的所有窗體和所有標(biāo)準(zhǔn)模塊中的過程調(diào)用。按過程的作用范圍
5、來劃分,過程可分為:模塊級過程全局級過程用例7.1來說明過程的作用域總結(jié)歸納過程的定義及作用域如下表(教材Pg.163)幾點(diǎn)說明:(教材Pg.164)7.3變量的作用域概述:在VB中,由于可以在過程中和模塊中聲明變量,根據(jù)定義變量的位置和定義變量的語句不同,變量可以分為:局部變量(過程級變量)窗體/模塊級變量(私有的模塊級變量,能被本模塊的所有過程和函數(shù)使用)全局級變量(公有的模塊級變量)。7.3.1過程級變量——局部變量局部變量:在過程內(nèi)用聲明的變量,只能在本過程中使用。在過程內(nèi)部使用Dim或者Static
6、關(guān)鍵字來聲明的變量,只在聲明它們的過程中才能被訪問或改變該變量的值,別的過程不可訪問。所以可以在不同的過程中聲明相同名字的局部變量而互不影響。例:PrivateSubForm_Load()Dimn%n=10EndSubPrivateSubFrom_Click()Dimn%Print“n=“;nEndSub程序運(yùn)行后單擊窗體,其輸出結(jié)果是什么?7.3.2窗體/模塊級變量窗體/模塊級變量:在“通用聲明”段中用Dim語句或用Private語句聲明的變量,可被本窗體/模塊的任何過程訪問。但其他模塊卻不能訪問該變量。例
7、如:在“通用聲明”段聲明如下變量PrivatesAsStringDimaAsInteger,bAsSingle7.3.3全局變量全局變量也稱公有的模塊級變量,在窗體模塊或標(biāo)準(zhǔn)模塊的頂部的“通用”聲明段用Public關(guān)鍵字聲明,它的作用范圍是整個應(yīng)用程序,即可被本應(yīng)用程序的任何過程或函數(shù)訪問。例如:PublicaAsInteger,bAssingle3種變量聲明及使用規(guī)則如下表:一、公用變量與局部變量同名在不同過程中定義同名變量,它們互不影響,但若在一過程中定義使用了與全局變量同名的變量,則就應(yīng)注意。7.3.4
8、關(guān)于多個變量同名注意:在過程中,如果定義了與模塊級變量(在通用部分使用Private或Dim聲明的變量),則在該過程內(nèi)不能引用同名的模塊級變量。例如,上面的例子中,如果將定義全局變量的語句PublicTempAsInteger改為PrivateTempAsInteger則在Command1的單擊事件中就不使用模塊級的Temp變量。PublicTempAsInteger'定義全局變量PrivateSubForm_Load()Temp=1'將全局變量Temp的值設(shè)置成1EndSubPrivateSubComman
9、d1_Click()DimTempAsInteger'定義局部變量Temp=2'將局部變量Temp的值設(shè)置成2Print"temp=";TempPrint"temp=";Form1.TempEndSubPrivateSubCommand2_Click()Print"temp=";TempEndSub二、全局變量同名如果不同模塊中的全局變量使用同一名字,則通過同時引用模塊名和變量名就可以在代碼中區(qū)分它