【正文】
函數(shù)過(guò)程與 Sub過(guò)程 第 7章 過(guò)程 通用過(guò)程 (Sub/Function)過(guò)程可以保存在兩種模塊中: 窗體模塊 (.frm)和 標(biāo)準(zhǔn)模塊 (.bas) (1) 在窗體模塊中創(chuàng)建通用過(guò)程: 可以在代碼窗口中直接鍵入來(lái)創(chuàng)建 Sub過(guò)程 選擇“工具”菜單中的“添加過(guò)程”命令 (2) 在標(biāo)準(zhǔn)模塊中創(chuàng)建通用過(guò)程: 選擇“工程”菜單中的“添加模塊”命令 保存為一個(gè)獨(dú)立的“ .bas” 文件 舉例: 把例 max(m, n)存放在模塊文件中 創(chuàng)建通用過(guò)程的方法 第 7章 s = max(a, b) …… Function max(m, n) As Single …… End Function 實(shí)參 形參 第 7章 值傳遞 :在形參前加“ ByVal”,形參得到的是實(shí)參的值,形參值的改變不會(huì)影響實(shí)參的值。 過(guò)程 設(shè)置兩個(gè)通用過(guò)程 Test1和 Test2,分別按值傳遞和按地址傳遞 Private Sub Form_Load() Dim x As Integer Show x = 5 Print 執(zhí)行 test1前, x=。 過(guò)程 傳遞方式示意圖 5 Form_Load( ) test1( ) x t 實(shí)參 形參 (a) 值傳遞 5 x s (b) 地址傳遞 實(shí)參和形參共享單元 0 Form_Load( ) test2( ) 5 10 第 7章 過(guò)程 把求兩個(gè)數(shù)中的大數(shù)編成 Sub子過(guò)程,過(guò)程名為 Max Private Sub Form_Load() Show Dim a As Single, b As Single, c As Single Dim s As Single, m As Single a = Val(InputBox(輸入第一個(gè)數(shù) )) b = Val(InputBox(輸入第二個(gè)數(shù) )) c = Val(InputBox(輸入第三個(gè)數(shù) )) Call max(a, b, s) Call max(s, c, m) Print 最大數(shù)是 :。 過(guò)程 Private Sub Form_Load() Show m = Val(InputBox(輸入 m的值 )) n = Val(InputBox(輸入 n的值 )) If m n Then MsgBox 輸入數(shù)據(jù)錯(cuò)誤 , 0, 檢查錯(cuò)誤 End End If Print 組合數(shù)是: 。 過(guò)程 過(guò)程的嵌套調(diào)用 a=Calb(n,m) b=Jc(n) 事件過(guò)程 Form_Load Function過(guò)程 Calb(n,m) Function過(guò)程 Jc(x) 結(jié)束 開(kāi)始 第 7章 過(guò)程 變量的作用域 局部變量: 在 窗體模塊 (.frm)和 標(biāo)準(zhǔn)模塊 (.bas)的 過(guò)程內(nèi) 聲明的變量,只能在本過(guò)程中使用。 過(guò)程 1. 局部變量 在一個(gè) 過(guò)程內(nèi)部 用 Dim或 Static聲明的變量稱(chēng)為局部變量。 過(guò)程 在窗體模塊的 “通用聲明” 段中聲明的變量稱(chēng)為模塊級(jí)變量,可以在一個(gè)窗體的不同過(guò)程中使用。 全局變量可以被應(yīng)用程序中任何一個(gè)窗體和模塊直接訪問(wèn)。 使用 Dim關(guān)鍵字 在過(guò)程中聲明的局部變量屬于動(dòng)態(tài)變量 2. 靜態(tài)變量 退出該過(guò)程時(shí)變量值被保留,即變量所占的內(nèi)存單元沒(méi)有釋放。每次調(diào)用過(guò)程,變量保持原來(lái)的值。 過(guò)程 Static Sub Subtest() Dim t As Integer t=2*t+1 Print t End Sub Private Sub Command1_Click() Call Subtest End Sub 運(yùn)行后, 3次單擊命令按鈕,執(zhí)行結(jié)果為: 1 3 7 例 Static Sub語(yǔ)句示例 將 Static Sub改為 Private Sub, 運(yùn)行后, 3次單擊命令按鈕,執(zhí)行結(jié)果為: 1 1 1 Private 第 7章 第 7章 過(guò)程 多窗體處理 在多窗體程序中,每個(gè)窗體可以有自己的界面和程序代碼,完成不同的操作 1. 添加窗體 通過(guò)“工程”菜單中的“添加窗體”命令來(lái)實(shí)現(xiàn) 2. 刪除窗體 選擇“工程”菜單中的“移除”命令 3. 保存窗體 選擇“文件”菜單中的“保存”或“另存為”命令 4. 設(shè)置啟動(dòng)窗體 在“工程 /工程屬性”對(duì)話框中設(shè)置 多窗體與 Sub Main過(guò)程 第 7章 有關(guān)語(yǔ)句和方法 第 7章 過(guò)程 創(chuàng)建 3個(gè)窗體和 1個(gè)標(biāo)準(zhǔn)模塊 (1)主窗體 (Form1) 本窗體上建立了“ 輸入數(shù)據(jù) ” (Command11) 、“ 計(jì)算 ” (Command12)和“ 結(jié)束 ” (Command13)三個(gè)命令按鈕 設(shè)置為啟動(dòng)窗體 例 多窗體應(yīng)用示例 —— 計(jì)算兩數(shù)之和及積 啟動(dòng) 窗體 主窗體 輸入兩個(gè)數(shù) 計(jì)算 定義全局變量 第 7章 隱藏主窗體 39。窗體上建立了 2個(gè)文本框 (Text21和 Text22)和1個(gè)“返回”命令按鈕 (Command21) Text21 Text22 第 7章 過(guò)程 (3)“計(jì)算”窗體 (Form3) Private Sub Command31_Click() ?“計(jì)算”窗體的“加法”按鈕 = X + Y End Sub Private Sub Command32_Click() ?“計(jì)算”窗體的“乘法”按鈕 = X * Y End Sub Private Sub Command33_Click() 39。 過(guò)程 (4)標(biāo)準(zhǔn)模塊 (Modulel) 由于在各窗體之間需要使用公共變量來(lái)傳送數(shù)據(jù),所以建立一個(gè)標(biāo)準(zhǔn)模塊 Modulel,對(duì)用到的 全局變量 X和 Y進(jìn)行聲明 第 7章 過(guò)程 創(chuàng)建 2個(gè)窗體和 1個(gè)標(biāo)準(zhǔn)模塊 例 Sub Main 過(guò)程示例 第 7章 2. 模塊級(jí)變量聲明 用 Dim關(guān)鍵詞聲明的變量和常量,其有效范圍僅限于本模塊內(nèi)。 過(guò)程 例 將判斷一個(gè)數(shù)是否為素?cái)?shù)編成一個(gè)函數(shù),然后通過(guò)調(diào)用該函數(shù)求 500~ 1000數(shù)中的所有素?cái)?shù),把這些素?cái)?shù)顯示在列表框中。 程序舉例 列表框List1 標(biāo)簽 Label1 命令按鈕Command1 第 7章 amp。返回函數(shù)值 End Function 第 7章 黑色 = RGB(0, 0, 255) 39。n為奇數(shù)時(shí)清除 End If End Sub 每次減少 2空格 1個(gè)漢字占 2個(gè)字符位置 每次增加 1個(gè)漢字