vb程序設(shè)計(jì)第七章_第1頁
vb程序設(shè)計(jì)第七章_第2頁
vb程序設(shè)計(jì)第七章_第3頁
vb程序設(shè)計(jì)第七章_第4頁
vb程序設(shè)計(jì)第七章_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、abgfdce 將程序分割成較小的邏輯部件就可以簡化程序?qū)⒊绦蚍指畛奢^小的邏輯部件就可以簡化程序設(shè)計(jì)任務(wù),稱這些部件為過程,用過程編程有設(shè)計(jì)任務(wù),稱這些部件為過程,用過程編程有兩大好兩大好處處: 過程可使程序劃分成離散的邏輯單元,每個單元都過程可使程序劃分成離散的邏輯單元,每個單元都比無過程的整個程序容易調(diào)試。比無過程的整個程序容易調(diào)試。一個程序中的過程,往往不必修改或只需稍作改動一個程序中的過程,往往不必修改或只需稍作改動,便可以成為另一個程序的構(gòu)件。,便可以成為另一個程序的構(gòu)件。在在 Visual BasicVisual Basic中最常使用下列中最常使用下列兩種過程兩種過程: Sub S

2、ub 過程不返回值過程不返回值, ,稱為稱為子過程子過程。Function Function 過程返回值過程返回值, ,稱為稱為函數(shù)過程函數(shù)過程。 7.1 Sub7.1 Sub子過程子過程SubSub過程分為過程分為事件過程事件過程和和通用過程通用過程。 1. 1. 事件過程事件過程 當(dāng)當(dāng) Visual Basic Visual Basic 中的對象對一個事件中的對象對一個事件的發(fā)生作出認(rèn)定時,便自動用相應(yīng)于事件的名的發(fā)生作出認(rèn)定時,便自動用相應(yīng)于事件的名字調(diào)用該事件的過程。因?yàn)樽终{(diào)用該事件的過程。因?yàn)槊衷趯ο蠛痛a名字在對象和代碼之間建立了聯(lián)系之間建立了聯(lián)系,所以說,所以說事件過程是附加在

3、窗事件過程是附加在窗體和控件上的體和控件上的。一個。一個控件控件的的事件過程事件過程將將控件的控件的(在(在 Name Name 屬性中規(guī)定的)屬性中規(guī)定的)實(shí)際名字實(shí)際名字、下劃線下劃線 (“_”) (“_”) 和和事件名事件名組合起來。組合起來。 2. 2. 通用過程通用過程 通用過程通用過程告訴應(yīng)用程序如何完成告訴應(yīng)用程序如何完成一項(xiàng)指定一項(xiàng)指定的任務(wù)的任務(wù)。一旦確定了通用過程,就必須專由應(yīng)用。一旦確定了通用過程,就必須專由應(yīng)用程序來調(diào)用。程序來調(diào)用。建立通用建立通用目的目的之一就是,幾個不同的事件過程也之一就是,幾個不同的事件過程也許要執(zhí)行同樣的動作。將許要執(zhí)行同樣的動作。將公共語句公

4、共語句放入一過程(放入一過程(通用過程)并通用過程)并由事件過程來調(diào)用由事件過程來調(diào)用它,誠為編程上它,誠為編程上策。這樣一來就策。這樣一來就不必重復(fù)代碼,也容易維護(hù)應(yīng)用不必重復(fù)代碼,也容易維護(hù)應(yīng)用程序程序。SwapSwap(x,y) x,y) 子過程的定義子過程的定義Public Sub Swap(x,y)Public Sub Swap(x,y)Dim tDim tt=xt=xx=yx=yy=ty=tEnd SubEnd Sub主調(diào)程序調(diào)用主調(diào)程序調(diào)用SwapSwap子過程子過程Private Sub Form_Click()Private Sub Form_Click()Dim a,bDi

5、m a,ba=10a=10b=20b=20Swap a,bSwap a,bEnd SubEnd SubPrint “a=”;a,“b=”;bPrint “a=”;a,“b=”;b Private|PublicStatic Sub Exit Sub End SubPrivate|PublicStatic Function AS = Exit Function End Function子過程與函數(shù)過程的區(qū)別及注意事項(xiàng):子過程與函數(shù)過程的區(qū)別及注意事項(xiàng):(1)子過程的適用范圍大于函數(shù)過程。用函數(shù))子過程的適用范圍大于函數(shù)過程。用函數(shù)過程定義的,肯定能用子過程定義,反之則不一過程定義的,肯定能用子過程

6、定義,反之則不一定。定。(2)函數(shù)過程有返回值,過程名也就有類型,)函數(shù)過程有返回值,過程名也就有類型,同時在函數(shù)體內(nèi)必須對函數(shù)過程名賦值;而子過同時在函數(shù)體內(nèi)必須對函數(shù)過程名賦值;而子過程沒有值,也就沒有類型,且不能在子過程體內(nèi)程沒有值,也就沒有類型,且不能在子過程體內(nèi)對子過程名賦值。對子過程名賦值。3.3.查看過程查看過程通用過程通用過程是程序中的公共代碼段,可供各個事件過是程序中的公共代碼段,可供各個事件過程調(diào)用,因此編寫程序時經(jīng)常要查看當(dāng)前模塊或其他程調(diào)用,因此編寫程序時經(jīng)常要查看當(dāng)前模塊或其他模塊中有哪些通用過程。模塊中有哪些通用過程。要查看要查看當(dāng)前模塊當(dāng)前模塊中有哪些中有哪些Su

7、bSub過程和過程和FunctionFunction過程,過程,可以在代碼窗口查看??梢栽诖a窗口查看。如果要查看的是如果要查看的是其他模塊其他模塊中的過程,可以選擇中的過程,可以選擇“視視圖圖”菜單中的菜單中的“對象瀏覽器對象瀏覽器”命令。命令。調(diào)用過程:調(diào)用過程:Call testsub(18, cj(), Test ) Call testsub(18, cj(), Test ) 定義過程定義過程:Sub testsub(r As Integer, aa() As Single, cc As String) Sub testsub(r As Integer, aa() As Single,

8、 cc As String) 實(shí)際參數(shù)實(shí)際參數(shù)形式參數(shù)形式參數(shù)Public Sub Swap1(Public Sub Swap1(ByValByVal x As Integer, x As Integer,ByValByVal y As Integer y As Integer) ) Dim t As Ineger Dim t As Ineger t=x:x=y:y=t t=x:x=y:y=tEnd SubEnd SubPublic Sub Swap2( x As Integer, y As IntegerPublic Sub Swap2( x As Integer, y As Integer

9、) ) Dim t As Ineger Dim t As Ineger t=x:x=y:y=t t=x:x=y:y=tEnd SubEnd SubPrivate Sub Command1_click()Private Sub Command1_click() Dim a As Integer,b As Integer Dim a As Integer,b As Integer a=10:b=20 a=10:b=20 Swap1 a,b Swap1 a,b Print “a=”;a,”b=”;b Print “a=”;a,”b=”;b a=10:b=20 a=10:b=20 Swap2 a,b

10、Swap2 a,b Print “a=”;a, “b=”;b Print “a=”;a, “b=”;bEnd SubEnd Sub主程序調(diào)用Sprg1Sprg1End SubEnd SubSprg1Sprg1調(diào)用Sprg2Sprg2End SubEnd SubSprg2Sprg2End SubEnd Sub過程的嵌套圖解過程的嵌套圖解1981 1n n (n-1)!(n-1)!n=0n=0n0n0n!=n!=1 1n n* *fact(n-1)fact(n-1)n=0n=0n0n0fact(n)=fact(n)=Fact(4)=4Fact(4)=4* *fact(3)fact(3)Fact(3

11、)=3Fact(3)=3* *fact(2)fact(2)Fact(2)=2Fact(2)=2* *fact(1)fact(1)Fact(1)=1Fact(1)=1* *fact(0)fact(0)Fact(0)=1Fact(0)=1Fact(4)=4Fact(4)=4* *6 6Fact(3)=3Fact(3)=3* *2 2Fact(2)=2Fact(2)=2* *1 1Fact(1)=1Fact(1)=1* *1 1邊界條件邊界條件VBVB應(yīng)用程序應(yīng)用程序. .VBPVBP窗體模塊窗體模塊 . .FrmFrm類模塊類模塊 . .ClsCls標(biāo)準(zhǔn)模塊標(biāo)準(zhǔn)模塊 . .BasBas函數(shù)過程函數(shù)

12、過程 (Function)(Function) Sub Sub過程過程 事件過程事件過程 SubSub過程過程函數(shù)過程函數(shù)過程(Function)(Function)7.4.1.1 7.4.1.1 窗體模塊窗體模塊由于由于 Visual Basic Visual Basic 應(yīng)用程序是基于應(yīng)用程序是基于對象對象的,的,所以應(yīng)用程序的代碼結(jié)構(gòu)就是該程序在屏幕上物所以應(yīng)用程序的代碼結(jié)構(gòu)就是該程序在屏幕上物理表示的模型。根據(jù)定義,理表示的模型。根據(jù)定義,對象包含數(shù)據(jù)和代碼對象包含數(shù)據(jù)和代碼。在屏幕上看到的窗體代表屬性,這些屬性定義。在屏幕上看到的窗體代表屬性,這些屬性定義了窗體的外觀和內(nèi)在特性。了窗

13、體的外觀和內(nèi)在特性。應(yīng)用程序中的每個窗應(yīng)用程序中的每個窗體都有一個包含其代碼的相關(guān)的窗體模塊體都有一個包含其代碼的相關(guān)的窗體模塊(文件(文件擴(kuò)展名為擴(kuò)展名為 . .FRMFRM)。)。每個每個窗體模塊窗體模塊都包含:都包含:事件過程事件過程,即代碼部分,其中有為響應(yīng)特定,即代碼部分,其中有為響應(yīng)特定事件而執(zhí)行的指令;事件而執(zhí)行的指令;控件控件。在窗體模塊中,對窗體上的每個控件。在窗體模塊中,對窗體上的每個控件都有一個對應(yīng)的事件過程集;都有一個對應(yīng)的事件過程集;窗體模塊還可包含窗體模塊還可包含通用過程通用過程,它對來自任何,它對來自任何事件過程的調(diào)用都作出響應(yīng)。事件過程的調(diào)用都作出響應(yīng)。窗體變量

14、的說明、外部過程的窗體級聲明窗體變量的說明、外部過程的窗體級聲明。 7.4.1.2 7.4.1.2 標(biāo)準(zhǔn)模塊標(biāo)準(zhǔn)模塊 標(biāo)準(zhǔn)模塊(具有標(biāo)準(zhǔn)模塊(具有 . .bas bas 文件擴(kuò)展名)可以文件擴(kuò)展名)可以包含類型、常數(shù)、變量、外部過程和公共過包含類型、常數(shù)、變量、外部過程和公共過程的公共的或模塊級的聲明程的公共的或模塊級的聲明??蓪⒛切┛蓪⒛切┡c特定窗體或控件無關(guān)的代碼與特定窗體或控件無關(guān)的代碼放放入另一類型的模塊入另一類型的模塊 標(biāo)準(zhǔn)模塊(文件擴(kuò)展名標(biāo)準(zhǔn)模塊(文件擴(kuò)展名為為 . .BAS BAS )中。如果一個過程可能用來響應(yīng)中。如果一個過程可能用來響應(yīng)幾個不同對象中的事件,應(yīng)該將這個過程放幾

15、個不同對象中的事件,應(yīng)該將這個過程放在標(biāo)準(zhǔn)模塊中,而不應(yīng)在每一個對象的事件在標(biāo)準(zhǔn)模塊中,而不應(yīng)在每一個對象的事件過程中重復(fù)相同的代碼。過程中重復(fù)相同的代碼。工程菜單工程菜單添加模塊添加模塊打開添加模塊對話框打開添加模塊對話框選擇新建選選擇新建選項(xiàng)卡項(xiàng)卡 雙擊模塊圖標(biāo)(單擊打開按鈕)雙擊模塊圖標(biāo)(單擊打開按鈕)在屬性窗口給在屬性窗口給標(biāo)準(zhǔn)模塊命名(標(biāo)準(zhǔn)模塊命名(NameName)在標(biāo)準(zhǔn)模塊的代碼窗口中編寫代在標(biāo)準(zhǔn)模塊的代碼窗口中編寫代碼。碼。添加標(biāo)準(zhǔn)模塊的步驟添加標(biāo)準(zhǔn)模塊的步驟:7.4.1.3 7.4.1.3 類模塊類模塊類模塊(具有類模塊(具有 . .cls cls 文件擴(kuò)展名)與窗體模塊文件

16、擴(kuò)展名)與窗體模塊類似,只是類似,只是沒有可見的用戶界面沒有可見的用戶界面??梢允褂妙惸???梢允褂妙惸K創(chuàng)建含有方法和屬性代碼的自己的對象。塊創(chuàng)建含有方法和屬性代碼的自己的對象。用類模塊(文件擴(kuò)展名為用類模塊(文件擴(kuò)展名為 . .CLS CLS )創(chuàng)建對象,創(chuàng)建對象,這些對象可被應(yīng)用程序內(nèi)的過程調(diào)用。這些對象可被應(yīng)用程序內(nèi)的過程調(diào)用。標(biāo)準(zhǔn)模塊標(biāo)準(zhǔn)模塊只包含代碼,而類模塊既包含代碼又包含數(shù)據(jù)只包含代碼,而類模塊既包含代碼又包含數(shù)據(jù),可視為沒有物理表示的控件??梢暈闆]有物理表示的控件。 全局變量全局變量窗體窗體/ /模塊級變量模塊級變量局部變量局部變量靜態(tài)變量的聲明形式如下:靜態(tài)變量的聲明形式如下

17、:3 3 調(diào)用其他模塊中的過程的格式調(diào)用其他模塊中的過程的格式調(diào)用調(diào)用窗體過程窗體過程的的格式格式: Call Call 窗體名窗體名. .sub sub 過程名過程名( (參數(shù)表參數(shù)表) ) 窗體名窗體名. .subsub過程名過程名 參數(shù)表參數(shù)表 窗體名窗體名. .function function 過程名過程名( (參數(shù)表參數(shù)表) )調(diào)用調(diào)用標(biāo)準(zhǔn)模塊標(biāo)準(zhǔn)模塊中的過程的中的過程的格式格式: Call Call 模塊名模塊名. .sub sub 過程名過程名( (參數(shù)表參數(shù)表) ) 模塊名模塊名. .subsub過程名過程名 參數(shù)表參數(shù)表 模塊名模塊名. .function function

18、 過程名過程名( (參數(shù)表參數(shù)表) )7.5 7.5 多窗體與多窗體與Sub MainSub Main過程過程 在一個在一個VBVB應(yīng)用程序中,允許創(chuàng)建多個窗體,多應(yīng)用程序中,允許創(chuàng)建多個窗體,多個標(biāo)準(zhǔn)標(biāo)塊和類模塊。本節(jié)簡要地討論有關(guān)多窗體個標(biāo)準(zhǔn)標(biāo)塊和類模塊。本節(jié)簡要地討論有關(guān)多窗體編程的有問題。編程的有問題。 7.5.1 7.5.1 多窗體處理多窗體處理 添加窗體添加窗體 刪除窗體刪除窗體 保存窗體保存窗體 設(shè)置啟動窗體設(shè)置啟動窗體 有關(guān)語句和方法有關(guān)語句和方法 P P2092097.5.2 7.5.2 Sum MainSum Main過程過程 有時在程序啟動時不需要加載任何窗體,而是首先有時在程序啟動時不需要加載任何窗體,而是首先執(zhí)行一段程序代碼,例如,需要

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論