![第七章過程和變量作用域1_第1頁](http://file4.renrendoc.com/view/5583a567b4c51c164940d0d729e3edec/5583a567b4c51c164940d0d729e3edec1.gif)
![第七章過程和變量作用域1_第2頁](http://file4.renrendoc.com/view/5583a567b4c51c164940d0d729e3edec/5583a567b4c51c164940d0d729e3edec2.gif)
![第七章過程和變量作用域1_第3頁](http://file4.renrendoc.com/view/5583a567b4c51c164940d0d729e3edec/5583a567b4c51c164940d0d729e3edec3.gif)
![第七章過程和變量作用域1_第4頁](http://file4.renrendoc.com/view/5583a567b4c51c164940d0d729e3edec/5583a567b4c51c164940d0d729e3edec4.gif)
![第七章過程和變量作用域1_第5頁](http://file4.renrendoc.com/view/5583a567b4c51c164940d0d729e3edec/5583a567b4c51c164940d0d729e3edec5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
一個應(yīng)用程序的組成結(jié)構(gòu)第一頁,共29頁。第一頁,共29頁。7.1.1窗體模塊(文件擴(kuò)展名為.FRM)
窗體模塊。窗體模塊可以包含處理事件的過程、通用過程以及變量、常數(shù)、類型和外部過程的窗體級聲明。如果要在文本編輯器中觀察窗體模塊,則還會看到窗體及其控件的描述,包括它們的屬性設(shè)置值。寫入窗體模塊的代碼是該窗體所屬的具體應(yīng)用程序?qū)S玫模凰部梢砸迷搼?yīng)用程序內(nèi)的其它窗體或?qū)ο?。第二頁,?9頁。第二頁,共29頁。7.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)模塊。第三頁,共29頁。第三頁,共29頁。7.1.3類模塊(文件擴(kuò)展名為.CLS)在VisualBasic中類模塊是面向?qū)ο缶幊痰幕A(chǔ)??稍陬惸K中編寫代碼建立新對象。這些新對象可以包含自定義的屬性和方法。實際上,窗體正是這樣一種類模塊,在其上可安放控件,可顯示窗體窗口。第四頁,共29頁。第四頁,共29頁。7.2過程的作用域[Public|Private]Sub子過程名([形式參數(shù)列表])…..EndSub概念通用子過程和函數(shù)過程既可寫在窗體模塊中也可寫在標(biāo)準(zhǔn)模塊中,在定義時可選用關(guān)鍵字Private(局部)和Public(全局),來決定它們能被調(diào)用的范圍。第五頁,共29頁。第五頁,共29頁。1、窗體/模塊級過程:
加Private關(guān)鍵字的過程,只能被定義的窗體或模塊中的過程調(diào)用。2、全局級過程:
加Public關(guān)鍵字(或缺省)的過程,可供該應(yīng)用程序的所有窗體和所有標(biāo)準(zhǔn)模塊中的過程調(diào)用。按過程的作用范圍來劃分,過程可分為:
模塊級過程
全局級過程用例7.1來說明過程的作用域第六頁,共29頁。第六頁,共29頁??偨Y(jié)歸納過程的定義及作用域如下表(教材Pg.163)幾點說明:(教材Pg.164)第七頁,共29頁。第七頁,共29頁。7.3變量的作用域概述:在VB中,由于可以在過程中和模塊中聲明變量,根據(jù)定義變量的位置和定義變量的語句不同,變量可以分為:局部變量(過程級變量)窗體/模塊級變量(私有的模塊級變量,能被本模塊的所有過程和函數(shù)使用)全局級變量(公有的模塊級變量)。第八頁,共29頁。第八頁,共29頁。7.3.1過程級變量——局部變量局部變量:在過程內(nèi)用聲明的變量,只能在本過程中使用。在過程內(nèi)部使用Dim或者Static關(guān)鍵字來聲明的變量,只在聲明它們的過程中才能被訪問或改變該變量的值,別的過程不可訪問。所以可以在不同的過程中聲明相同名字的局部變量而互不影響。第九頁,共29頁。第九頁,共29頁。例:PrivateSubForm_Load()Dimn%n=10EndSubPrivateSubFrom_Click()Dimn%Print“n=“;nEndSub程序運(yùn)行后單擊窗體,其輸出結(jié)果是什么?第十頁,共29頁。第十頁,共29頁。7.3.2窗體/模塊級變量窗體/模塊級變量:在“通用聲明”段中用Dim語句或用Private語句聲明的變量,可被本窗體/模塊的任何過程訪問。但其他模塊卻不能訪問該變量。例如:在“通用聲明”段聲明如下變量PrivatesAsStringDimaAsInteger,bAsSingle第十一頁,共29頁。第十一頁,共29頁。7.3.3全局變量
全局變量也稱公有的模塊級變量,在窗體模塊或標(biāo)準(zhǔn)模塊的頂部的“通用”聲明段用Public關(guān)鍵字聲明,它的作用范圍是整個應(yīng)用程序,即可被本應(yīng)用程序的任何過程或函數(shù)訪問。例如:PublicaAsInteger,bAssingle第十二頁,共29頁。第十二頁,共29頁。3種變量聲明及使用規(guī)則如下表:第十三頁,共29頁。第十三頁,共29頁。一、公用變量與局部變量同名在不同過程中定義同名變量,它們互不影響,但若在一過程中定義使用了與全局變量同名的變量,則就應(yīng)注意。7.3.4關(guān)于多個變量同名注意:在過程中,如果定義了與模塊級變量(在通用部分使用Private或Dim聲明的變量),則在該過程內(nèi)不能引用同名的模塊級變量。例如,上面的例子中,如果將定義全局變量的語句PublicTempAsInteger改為PrivateTempAsInteger則在Command1的單擊事件中就不使用模塊級的Temp變量。第十四頁,共29頁。第十四頁,共29頁。
PublicTempAsInteger'定義全局變量PrivateSubForm_Load()Temp=1'將全局變量Temp的值設(shè)置成1EndSubPrivateSubCommand1_Click()DimTempAsInteger'定義局部變量Temp=2'將局部變量Temp的值設(shè)置成2Print"temp=";TempPrint"temp=";Form1.TempEndSubPrivateSubCommand2_Click()Print"temp=";TempEndSub第十五頁,共29頁。第十五頁,共29頁。二、全局變量同名如果不同模塊中的全局變量使用同一名字,則通過同時引用模塊名和變量名就可以在代碼中區(qū)分它們。例如,如果有一個在Form1和Module1中都聲明了公用的Integer變量intX,則把它們作為MX和FX來引用便得到正確值。也就是說如果不同模塊中的全局變量使用同一名字,引用時就需要使用“模塊名.變量名”的形式來區(qū)分它們。第十六頁,共29頁。第十六頁,共29頁。7.3.5靜態(tài)變量除作用域之外,變量還有存活期,在這一期間變量能夠保持它們的值。在應(yīng)用程序的存活期內(nèi)一直保持模塊級變量和全局變量的值。但是,對于Dim聲明的局部變量僅當(dāng)過程執(zhí)行期間存在,當(dāng)一個過程執(zhí)行完畢,它的局部變量的值就已經(jīng)不存在,而且變量所占據(jù)的內(nèi)存也被釋放。當(dāng)下一次執(zhí)行該過程時,它的所有局部變量將重新初始化。概念局部變量的存活期由其定義的關(guān)鍵詞來決定。第十七頁,共29頁。第十七頁,共29頁。局部變量聲明:
Dim聲明:隨過程的調(diào)用而分配存貯單元,變量的初始化;過程體結(jié)束,變量的內(nèi)容自動消失,存貯單元釋放。
Static聲明,每次調(diào)用過程,變量保持上次調(diào)用結(jié)束時的值。聲明形式:
Static變量名[AS類型] StaticFunction函數(shù)過程名([參數(shù)列表])[As類型]StaticSub子過程名[(參數(shù)列表)]
注意:過程名前加Static,表示該過程內(nèi)的局部變量都是靜態(tài)變量。第十八頁,共29頁。第十八頁,共29頁。例7.2
有一個人編了下面一段程序,想用變量n記錄單擊窗體的次數(shù)。PrivateSubForm_Click()DimnAsIntegern=n+1Print"已單擊次數(shù):";n&"次"EndSub分析程序運(yùn)行后多次單擊窗體的輸出結(jié)果:要記錄單擊窗體次數(shù),如何實現(xiàn)?并比較使用模塊變量和靜態(tài)變量的差別。例7.3教材P168第十九頁,共29頁。第十九頁,共29頁。PrivateSubForm_Click()Dimi%,isum%Fori=1To5 isum=sum(i) Printisum,NextiEndSubPrivateFunctionsum(nAsInteger)
DimjAsInteger j=j+nsum=jEndFunction12345StaticjAsInteger結(jié)果如何?
補(bǔ)充例題:第二十頁,共29頁。第二十頁,共29頁。7.4多重窗體與多模塊程序設(shè)計一個稍微復(fù)雜的應(yīng)用程序,不僅有多個窗體,還可能有標(biāo)準(zhǔn)模塊和類模塊,如下圖所示。本節(jié)介紹在多模塊程序中,關(guān)于啟動對象的設(shè)置、窗體的加載與卸載、窗體的加載與卸載時的事件、多模塊間數(shù)據(jù)的傳遞等。第二十一頁,共29頁。第二十一頁,共29頁。7.4.1設(shè)置啟動對象在程序運(yùn)行時,首先被加載并執(zhí)行的對象,稱為程序的啟動對象。一個程序的啟動對象可以是一個窗體,也可以是標(biāo)準(zhǔn)模塊中名為Main的自定義Sub過程。缺省情況下,第一個創(chuàng)建的窗體被指定為啟動對象。1、設(shè)置方法:從“工程”菜單中的最后一項“**屬性”,在“**工程屬性”對話框中進(jìn)行設(shè)置。2、如果設(shè)置從主過程Main()啟動,則必須在標(biāo)準(zhǔn)模塊中編寫Main()過程代碼。例:Pg170.第二十二頁,共29頁。第二十二頁,共29頁。7.4.2窗體的加載與卸載過程當(dāng)一個窗體要顯示在屏幕之前,必須先建立,接著被裝入內(nèi)存(Load語句),最后顯示(Show方法)在屏幕上。同樣,當(dāng)窗體要結(jié)束之前,會先從屏幕上隱藏(Hide方法),接著從內(nèi)存中刪除(Unload方法)第二十三頁,共29頁。第二十三頁,共29頁。在窗體的加載過程的各階段所用一的語句或方法以及所觸發(fā)的事件可用下面的圖來說明:第二十四頁,共29頁。第二十四頁,共29頁。在窗體的卸載過程的各階段所用一的語句或方法以及所觸發(fā)的事件如下圖:Unload語句QueryUnloadUnload第二十五頁,共29頁。第二十五頁,共29頁。1、窗體的加載與顯示(1)Load語句:裝入窗體到內(nèi)存
Load窗體名稱說明:執(zhí)行Load語句后,窗體并不顯示出來,但可引用該窗體中的控件及各種屬性。
注意:這里的窗體名稱是窗體的Name屬性,而不是窗體的文件名,以下相同。(3)Show方法:顯示一個窗體
[窗體名稱].Show[模式]0-Modeless(非模式):可以對其它窗體進(jìn)行操作1-Model,關(guān)閉才能對其它窗體進(jìn)行操作。 第二十六頁,共29頁。第二十六頁,共29頁。2、窗體的隱藏與卸載
(1)Unload語句:從內(nèi)存刪除窗體
Unload<窗體名稱> 說明:當(dāng)窗體卸載之后,所有在運(yùn)行時放到該窗體上的控件都不再是可訪問的。在設(shè)計時放到該窗體上的控件將保持不變在卸載窗體時,只有顯示的部件被卸載。與該窗體模塊相關(guān)聯(lián)的代碼還保持在內(nèi)存中。(2)Hide方法:隱藏,沒有刪除
[窗體名稱.]Hide第二十七頁,共29頁。第二十
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家政行業(yè)家居清潔培訓(xùn)總結(jié)
- 2025-2030全球合成油田緩蝕劑行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國車輛液壓制動管路行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國流體攝像三腳架云臺行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國濃縮杏汁行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球帳篷地釘行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國有隔板高效空氣過濾器行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國個人護(hù)理用辛酰甘氨酸行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球單擺銑頭行業(yè)調(diào)研及趨勢分析報告
- 山東省臨沂一中高三9月月考語文(文科)試題(含答案)
- 《公路勘測細(xì)則》(C10-2007 )【可編輯】
- 新教科版三年級下冊科學(xué) 第二單元重點題型練習(xí)課件
- 事故隱患報告和舉報獎勵制度
- 部編人教版道德與法治六年級下冊全冊課時練習(xí)講解課件
- 預(yù)防艾滋病、梅毒和乙肝母嬰傳播服務(wù)流程圖
- 鋼鐵是怎樣煉成的手抄報
- 防火墻漏洞掃描基礎(chǔ)知識
- 供應(yīng)鏈網(wǎng)絡(luò)安全解決方案
- NPI管理流程文檔
- 運(yùn)動技能學(xué)習(xí)PPT
- 嶺南版三年級美術(shù)下冊教學(xué)工作計劃
評論
0/150
提交評論