




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第9章 更復(fù)雜的工程 (時(shí)間:4次課,8學(xué)時(shí))第9章 更復(fù)雜的工程 教學(xué)提示:在本章以前,介紹的工程只含有一個(gè)窗體。本章將介紹含有多個(gè)窗體的工程,在一個(gè)工程中還可以含有標(biāo)準(zhǔn)模塊和公用過程。在學(xué)習(xí)中要注意多窗體的切換和Visual Basic工程結(jié)構(gòu)、公用過程的定義和調(diào)用與變量的作用域。 教學(xué)目標(biāo):掌握Show方法和Hide方法;掌握Sub過程和Function過程的編寫與調(diào)用;掌握啞實(shí)結(jié)合按值傳送和按址傳送的區(qū)別;掌握標(biāo)準(zhǔn)模塊的定義和使用方法。 第9章 更復(fù)雜的工程 9.1 公用過程 9.2 多窗體 9.3 多窗體與公用過程、標(biāo)準(zhǔn)模塊 9.4 綜合運(yùn)用 9.1 公用過程在前面章節(jié)中,曾經(jīng)使用過
2、事件過程的調(diào)用。如例8.1中,Command1_Click過程調(diào)用Combo1_DblClick事件過程,這樣減少了程序代碼。在程序設(shè)計(jì)中,有些數(shù)據(jù)處理的操作是相同的,在程序中把要進(jìn)行同類的操作的代碼獨(dú)立出來(lái),供其他程序使用。我們把這種公用的,完成某一特定功能的程序設(shè)計(jì)成可供其他程序調(diào)用的、獨(dú)立的程序段,稱為公用過程,也稱為子程序。 公用過程9.1.1 屬于窗體的子程序公用過程 9.1.2 屬于窗體的函數(shù)公用過程 9.1.3 參數(shù)的傳送 9.1.4 函數(shù)過程的使用 9.1.5 參數(shù)的傳送 9.1.1 屬于窗體的子程序公用過程 例9.1 繪制帶中心軸的小圓 設(shè)計(jì)一個(gè)窗體,在窗體上添加兩個(gè)命令按鈕
3、。運(yùn)行程序時(shí),單擊【開始】在窗體不同位置繪制4個(gè)帶中心軸的小圓,單擊【退出】結(jié)束程序的執(zhí)行。 9.1.2 子程序公用過程的使用 1. 子程序公用過程的格式 因Sub過程常被其他事件過程調(diào)用,也稱它為公用過程或子程序過程。與事件過程不同的是:子程序過程必須由其他過程調(diào)用,它用來(lái)完成特定的任務(wù),子程序過程由用戶創(chuàng)建。 子程序過程可以建立在窗體或標(biāo)準(zhǔn)模塊中。Sub子程序過程的一般格式為: Private|PublicStaticSub 過程名(形參表) 語(yǔ)句序列 Exit Sub End Sub形參表用于聲明形參的名稱、個(gè)數(shù)、位置和類型。形參表的格式如下。ByVal 變量名( )AS 類型,ByVa
4、l 變量名( )AS 類型形參在子程序被調(diào)用前沒有具體的數(shù)值,它的命名規(guī)則和普通變量一樣。形參不能是常數(shù)、表達(dá)式和數(shù)組元素,但可以是數(shù)組名。 2. 建立公用過程的步驟 (1)打開要添加過程的代碼編輯窗口。 (2)選擇【工具】下拉菜單中的【添加過程】命令,打開【添加過程】對(duì)話框,如圖9.2所示。 (3)在對(duì)話框中輸入過程名,選擇過程類型、范圍和是否使用Static說(shuō)明過程。 (4)單擊【確定】按鈕,返回【代碼編輯】窗口。 在【代碼編輯】窗口出現(xiàn)了過程的首尾語(yǔ)句。在Sub語(yǔ)句中加入形參,在Sub與 End Sub之間鍵入本過程要執(zhí)行的代碼。 3. 調(diào)用子程序過程的方法 調(diào)用本模塊的過程有兩種方法,
5、分別是使用Call語(yǔ)句調(diào)用和直接使用過程名調(diào)用。 使用Call語(yǔ)句 Call 過程名(實(shí)參表) 直接使用過程名 過程名 實(shí)參表 兩種調(diào)用方法的區(qū)別在于,使用Call語(yǔ)句時(shí),實(shí)參表必須用括號(hào)括起來(lái);直接使用過程名時(shí),實(shí)參表不要用括號(hào)括起來(lái)。 事件過程 :Call P1(A,B,C) : : Private Sub P1(A,B,C) 語(yǔ)句序列 Exit Sub End Sub程序中凡是要執(zhí)行子程序的地方都可以寫上調(diào)用子程序的語(yǔ)句。調(diào)用要求實(shí)參與形參一一對(duì)應(yīng)。實(shí)參允許是常數(shù)、變量名、數(shù)組元素、數(shù)組名和任意算術(shù)表達(dá)式或邏輯表達(dá)式,但必須注意,實(shí)參和形參的個(gè)數(shù)應(yīng)該相同,它們之間的類型、位置必須一一對(duì)應(yīng)
6、。實(shí)參和形參之間數(shù)據(jù)的傳遞是依據(jù)它們排列的位置實(shí)現(xiàn)的,而不是用名字相同來(lái)實(shí)現(xiàn),即它們之間數(shù)據(jù)的傳遞與名字本身無(wú)關(guān)。子程序的形參如果是數(shù)組名,則與之相應(yīng)的實(shí)參也必須是數(shù)組名。實(shí)參與形參之間的這種數(shù)據(jù)傳遞通常稱為虛實(shí)結(jié)合。 9.1.3 屬于窗體的函數(shù)公用過程 例9.2 計(jì)算四邊型的面積 設(shè)計(jì)一個(gè)窗體,在窗體上添加兩個(gè)命令按鈕。運(yùn)行程序時(shí),單擊【計(jì)算】在窗體輸出已知四邊長(zhǎng)和一條對(duì)角線長(zhǎng)的四邊型面積,單擊【退出】結(jié)束程序的執(zhí)行。 9.1.4 函數(shù)過程的使用 1. 定義函數(shù)過程函數(shù)過程可以建立在窗體或標(biāo)準(zhǔn)模塊中。函數(shù)過程的一般格式為: Private|PublicStaticFunction 函數(shù)名(形
7、參表)As 類型 語(yǔ)句序列 Exit Function 函數(shù)名=表達(dá)式 End Function函數(shù)過程格式中各關(guān)鍵字的含義同子程序過程。 2. 調(diào)用函數(shù)過程 調(diào)用自定義函數(shù)過程與調(diào)用內(nèi)部函數(shù)的方法一樣:在表達(dá)式中寫上函數(shù)過程的名字,并給出相應(yīng)的實(shí)參。 9.1.5 參數(shù)的傳送 過程是獨(dú)立的程序段,過程中虛擬參數(shù)在調(diào)用時(shí)才能確定,因此過程與調(diào)用程序之間需要傳送數(shù)據(jù)。 過程與過程外部的數(shù)據(jù)通訊有兩種方式: 通過窗體級(jí)變量或全程變量; 通過參數(shù)的啞實(shí)結(jié)合實(shí)現(xiàn)數(shù)據(jù)傳送。 用啞實(shí)結(jié)合的方式,實(shí)現(xiàn)調(diào)用程序和被調(diào)用過程之間的數(shù)據(jù)傳送,有兩種方式:按值傳送和按址傳送。 按值傳送,在調(diào)用語(yǔ)句中的實(shí)際參數(shù)是常量或
8、表達(dá)式,或者當(dāng)要求變量按值傳送時(shí),可以把變量用括號(hào)括起來(lái),使之成為一個(gè)表達(dá)式。在過程的定義語(yǔ)句中使用Byval關(guān)鍵字指定形式參數(shù),也表示按值傳送參數(shù)。 按地址傳送,Call語(yǔ)句中的實(shí)際參數(shù)為變量名,與實(shí)際參數(shù)對(duì)應(yīng)的形式參數(shù)也沒有用關(guān)鍵字Byval指定,表示是按地址傳送參數(shù)。另外,當(dāng)實(shí)際參數(shù)和對(duì)應(yīng)的形式參數(shù)都是數(shù)組時(shí),也是按地址傳送參數(shù)。 例如,下面程序Option ExplicitSub bubian(ByVal a As String, b As Integer) a = VB & a: b = b + 1 Print 調(diào)用時(shí)a 是:; a, 調(diào)用時(shí)b 是:; bEnd SubPrivate
9、 Sub form_Click() Dim a As String, b As Integer a = 程序設(shè)計(jì) Print 調(diào)用前a 是:; a, 調(diào)用前b 是:; b Call bubian(a, (b) Print 調(diào)用后a 是:; a, 調(diào)用后b 是:; bEnd Sub運(yùn)行時(shí),窗體輸出是:調(diào)用前a是:程序設(shè)計(jì) 調(diào)用前b是:0調(diào)用時(shí)a是:VB程序設(shè)計(jì) 調(diào)用時(shí)b是:1調(diào)用后a是:程序設(shè)計(jì) 調(diào)用后b是:0 Option ExplicitSub bubian(a As String, b As Integer) a = VB & a: b = b + 1 Print 調(diào)用時(shí)a 是:; a,
10、調(diào)用時(shí)b 是:; bEnd SubPrivate Sub form_Click() Dim a As String, b As Integer a = 程序設(shè)計(jì) Print 調(diào)用前a 是:; a, 調(diào)用前b 是:; b Call bubian(a, b) Print 調(diào)用后a 是:; a, 調(diào)用后b 是:; bEnd Sub運(yùn)行時(shí),窗體輸出是:調(diào)用前a是:程序設(shè)計(jì) 調(diào)用前b是:0調(diào)用時(shí)a是:VB程序設(shè)計(jì) 調(diào)用時(shí)b是:1調(diào)用后a是:VB程序設(shè)計(jì) 調(diào)用后b是:1 9.2 多 窗 體 在單一窗體有時(shí)不能滿足用戶的需求時(shí),VB允許使用多重窗體。多重窗體實(shí)際就是工程中包含多個(gè)普通窗體,每個(gè)窗體的用法和特
11、點(diǎn)與前幾章介紹的窗體一樣。例9.3 兩個(gè)窗體 設(shè)計(jì)兩個(gè)窗體,在第一個(gè)窗體上添加一個(gè)標(biāo)簽框和5個(gè)命令按鈕,在第二個(gè)窗體上添加兩個(gè)命令按鈕。運(yùn)行程序時(shí),顯示第一個(gè)窗體,單擊【左對(duì)齊】【右對(duì)齊】【居中顯示】,使標(biāo)簽框中的字完成對(duì)齊格式設(shè)置,單擊【下一個(gè)】顯示第二個(gè)窗體,隱藏本窗體,單擊【退出】結(jié)束程序的執(zhí)行。在第二個(gè)窗體顯示時(shí),單擊【顯示】在窗體輸出“這是第二個(gè)窗體”,單擊【返回】顯示第一個(gè)窗體,隱藏本窗體。 多 窗 體9.2.1 多窗體的操作 9.2.2 啟動(dòng)窗體與保存 9.2.1 多窗體的操作 1. 窗體的添加 從【工程】菜單中選擇【添加窗體】,并單擊對(duì)話框的【打開】,便把第二個(gè)窗體添加到工程中
12、。也可以使用工具欄中的【添加窗體】按鈕完成。窗體添加完成后,VB集成環(huán)境的工程窗口就會(huì)顯示出新增加的窗體。 2. 窗體的加載方法 格式:Load 窗體名稱 Load方法將指定窗體加載到內(nèi)存,但不顯示在屏幕上。Load方法將觸發(fā)窗體的Form_Load事件,Load方法執(zhí)行之后,在程序中可以引用窗體中的控件及其屬性。 3. 窗體的卸載方法 格式:Unload 窗體名稱 Unload方法是將窗體從內(nèi)存中卸載。如果窗體顯示在屏幕上,那么也將清除屏幕上的顯示。4. Show方法 格式:窗體名稱.show 模式 Show方法用于將窗體顯示在屏幕上。如果窗體沒有在內(nèi)存中,則Show方法會(huì)自動(dòng)將窗體加載并顯
13、示。 其中的“模式”表示被顯示窗體的狀態(tài),其值可為1或0。值等于1時(shí),表示窗體狀態(tài)為“模態(tài)”,顯示“模態(tài)”窗口時(shí),用戶無(wú)法把鼠標(biāo)指針移出當(dāng)前窗口,只有關(guān)閉“模態(tài)”窗口后才能對(duì)其他窗口進(jìn)行操作;值等于0時(shí),表示窗體狀態(tài)為“非模態(tài)”,顯示“非模態(tài)”窗口時(shí),用戶不必關(guān)閉當(dāng)前窗口就可以對(duì)其他窗口進(jìn)行操作。 5. Hide方法 格式:窗體名稱. Hide Hide方法是將窗體隱藏起來(lái)。使用Hide方法后,窗體雖然沒有在屏幕上顯示,但是仍然在內(nèi)存中,因此窗體及其內(nèi)部控件可以引用。與Hide方法效果相同的操作是將窗體的Visible屬性置為False。 9.2.2 啟動(dòng)窗體與保存 前面重點(diǎn)討論了多重窗體的設(shè)
14、計(jì)和多重窗體之間的切換,添加多窗體后,在界面設(shè)計(jì)時(shí),多窗體切換非常容易,用下面方法可以使某個(gè)窗體窗口為活動(dòng)窗體窗口。 l 單擊要切換到的窗體窗口中某一裸露的部分。 l 雙擊工程資源管理器窗格中要切換到窗體窗口的圖標(biāo)。 切換到的窗體窗口為活動(dòng)窗體窗口,其標(biāo)題欄為藍(lán)色,具有焦點(diǎn)。 在運(yùn)行多重窗體工程時(shí),哪一個(gè)窗體先啟動(dòng),用戶是可以設(shè)定。保存多重窗體工程也必須保存每個(gè)窗體文件。 1. 設(shè)置啟動(dòng)窗體 在運(yùn)行多重窗體工程時(shí),系統(tǒng)默認(rèn)將第一個(gè)建立的窗體首先打開。該窗體稱為啟動(dòng)窗體。用戶可以重新設(shè)定,啟動(dòng)窗體的設(shè)定方法如下: 從【工程】菜單中選擇【工程屬性】,然后在彈出的【工程屬性】對(duì)話框中選擇【通用】選項(xiàng)
15、卡,再用其中的【啟動(dòng)對(duì)象】設(shè)定啟動(dòng)窗體。 2. 保存或打開多重窗體的工程 在建立多重窗體的工程時(shí),工程資源管理器窗格可以很容易地觀察工程中包含的窗體和標(biāo)準(zhǔn)模塊。 9.3 多窗體與公用過程、標(biāo)準(zhǔn)模塊 例9.4B 計(jì)算a!+b!+c!。 要求在標(biāo)準(zhǔn)模塊中編寫函數(shù)子程序fact用來(lái)計(jì)算n!,用事件過程調(diào)用fact完成計(jì)算a!+b!+c!9.3.1 多窗體與公用過程 每個(gè)窗體對(duì)應(yīng)一個(gè)窗體模塊。窗體模塊保存在擴(kuò)展名為.frm的文件中。如果應(yīng)用程序中有多個(gè)窗體,將對(duì)應(yīng)多個(gè)窗體模塊,存儲(chǔ)多個(gè).frm的窗體文件。 窗體模塊中包含有:窗體的變量說(shuō)明、窗體和控件的屬性設(shè)置、事件過程、窗體內(nèi)的公用過程。在VB集成環(huán)
16、境的代碼中,可以看到的有:通用_聲明、事件過程和公用過程。 1. 通用_聲明 “通用_聲明”是窗體代碼的開始部分,主要存放窗體級(jí)變量和常量的聲明以及一些函數(shù)的聲明。在“通用_聲明”部分聲明的變量和常量在整個(gè)窗體的各個(gè)過程中有效。2. 事件過程 事件過程是用于處理各種事件的代碼,它與一個(gè)對(duì)象發(fā)生聯(lián)系,是基于事件驅(qū)動(dòng)的編程。事件過程放在“通用_聲明”部分之后,各個(gè)過程沒有順序之分,事件過程既可以用于響應(yīng)事件也可以被其他的程序調(diào)用。事件過程中定義的常量和變量在過程中有效。3. 在窗體中的公用過程 在任何窗體中,若定義的Sub過程和Function過程前加Private,則該過程只能被它所在窗體的其他
17、事件過程或子程序調(diào)用;若定義的Sub過程和Function過程前不加Private或加Public,則該過程不僅能被它所在窗體的其他事件過程或子程序調(diào)用,還允許其他窗體或模塊的程序調(diào)用,但其他窗體或模塊的程序調(diào)用時(shí)要指明窗體名稱。 9.3.2 多窗體與標(biāo)準(zhǔn)模塊 標(biāo)準(zhǔn)模塊是單獨(dú)的程序單位,文件以“.bas”為擴(kuò)展名。標(biāo)準(zhǔn)模塊并不是必須存在的,當(dāng)工程較大具有多重窗體時(shí),往往需要標(biāo)準(zhǔn)模塊,在標(biāo)準(zhǔn)模塊中不能編寫事件過程。 標(biāo)準(zhǔn)模塊的添加方法: 從【工程】菜單中選擇【添加模塊】命令,在隨后出現(xiàn)的【添加模塊】對(duì)話框中新建一個(gè)模塊。1. 在標(biāo)準(zhǔn)模塊中聲明全局變量在標(biāo)準(zhǔn)模塊的開始位置,并使用Global 或P
18、ublic關(guān)鍵詞對(duì)常量和變量進(jìn)行聲明,這樣聲明的變量和常量在整個(gè)工程中有效。2. 在標(biāo)準(zhǔn)模塊中聲明模塊級(jí)變量 在標(biāo)準(zhǔn)模塊中開始位置,使用Dim或Private關(guān)鍵詞對(duì)常量和變量進(jìn)行聲明,這樣聲明的變量和常量在本模塊內(nèi)有效。3. 在標(biāo)準(zhǔn)模塊中的公用過程 在標(biāo)準(zhǔn)模塊中,若定義的Sub過程和Function過程前加Private,則該過程只能被它所在標(biāo)準(zhǔn)模塊的其他過程調(diào)用;若定義的Sub過程和Function過程前不加Private或加Public,則該過程可被任何程序調(diào)用。 9.4 綜 合 運(yùn) 用 例9.5 再繪正弦曲線 設(shè)計(jì)一個(gè)工程,工程中包含窗體Form1、窗體zxqx和標(biāo)準(zhǔn)模塊Module1,窗體Form1的標(biāo)題為【LT9_5】,在窗體Form1上設(shè)計(jì)一個(gè)列表框和三命令按鈕,命令按鈕的標(biāo)題分別為【計(jì)算】【下一個(gè)】【結(jié)束】。運(yùn)行程序時(shí),先單擊【計(jì)算】,計(jì)算出繪制正弦曲線所用數(shù)據(jù)并顯示在列表框中,單擊【下一個(gè)】隱藏本窗體顯示窗體
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度學(xué)生傷害賠償協(xié)議書(校園意外)
- 二零二五年度道路運(yùn)輸企業(yè)司機(jī)薪酬管理合同
- 2025年度物業(yè)保潔項(xiàng)目管理勞動(dòng)合同
- 二零二五年度業(yè)主委員會(huì)與物業(yè)服務(wù)社區(qū)停車管理合同
- 2025年度門面房出租與租賃合同爭(zhēng)議解決協(xié)議
- 典當(dāng)與拍賣服務(wù)作業(yè)指導(dǎo)書
- 2025年IT服務(wù)管理培訓(xùn)課件
- 二手住房出售協(xié)議
- 網(wǎng)絡(luò)直播行業(yè)主播言論免責(zé)協(xié)議
- 客戶關(guān)系管理軟件開發(fā)外包合同書
- 2024年山東服裝職業(yè)學(xué)院高職單招(英語(yǔ)/數(shù)學(xué)/語(yǔ)文)筆試歷年參考題庫(kù)含答案解析
- 團(tuán)播主持人協(xié)議
- 電梯維保經(jīng)營(yíng)計(jì)劃書
- 蘇教版二年級(jí)科學(xué)下冊(cè)第7課《栽小蔥》課件PPT
- 市政道路工程質(zhì)量保證措施
- 網(wǎng)店運(yùn)營(yíng)管理(第二版)課件全套 段文忠 第1-9章 網(wǎng)店運(yùn)營(yíng)基本原理- 戰(zhàn)略化運(yùn)營(yíng) 動(dòng)態(tài)競(jìng)爭(zhēng)
- ISO22000體系文件清單
- 失禁性皮炎的護(hù)理
- 檢傷分類課件
- 河道地形測(cè)繪服務(wù)投標(biāo)方案
- 液化石油氣鋼瓶倒殘操作規(guī)程
評(píng)論
0/150
提交評(píng)論