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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

4、共語(yǔ)句放入一過(guò)程(放入一過(guò)程(通用過(guò)程)并通用過(guò)程)并由事件過(guò)程來(lái)調(diào)用由事件過(guò)程來(lái)調(diào)用它,誠(chéng)為編程上它,誠(chéng)為編程上策。這樣一來(lái)就策。這樣一來(lái)就不必重復(fù)代碼,也容易維護(hù)應(yīng)用不必重復(fù)代碼,也容易維護(hù)應(yīng)用程序程序。SwapSwap(x,y) x,y) 子過(guò)程的定義子過(guò)程的定義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子過(guò)程子過(guò)程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子過(guò)程與函數(shù)過(guò)程的區(qū)別及注意事項(xiàng):子過(guò)程與函數(shù)過(guò)程的區(qū)別及注意事項(xiàng):(1)子過(guò)程的適用范圍大于函數(shù)過(guò)程。用函數(shù))子過(guò)程的適用范圍大于函數(shù)過(guò)程。用函數(shù)過(guò)程定義的,肯定能用子過(guò)程定義,反之則不一過(guò)程定義的,肯定能用子過(guò)程

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

7、bSub過(guò)程和過(guò)程和FunctionFunction過(guò)程,過(guò)程,可以在代碼窗口查看。可以在代碼窗口查看。如果要查看的是如果要查看的是其他模塊其他模塊中的過(guò)程,可以選擇中的過(guò)程,可以選擇“視視圖圖”菜單中的菜單中的“對(duì)象瀏覽器對(duì)象瀏覽器”命令。命令。調(diào)用過(guò)程:調(diào)用過(guò)程:Call testsub(18, cj(), Test ) Call testsub(18, cj(), Test ) 定義過(guò)程定義過(guò)程: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過(guò)程的嵌套圖解過(guò)程的嵌套圖解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類(lèi)模塊類(lèi)模塊 . .ClsCls標(biāo)準(zhǔn)模塊標(biāo)準(zhǔn)模塊 . .BasBas函數(shù)過(guò)程函數(shù)

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

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

14、的說(shuō)明、外部過(guò)程的窗體級(jí)聲明窗體變量的說(shuō)明、外部過(guò)程的窗體級(jí)聲明。 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ò)展名)可以包含類(lèi)型、常數(shù)、變量、外部過(guò)程和公共過(guò)包含類(lèi)型、常數(shù)、變量、外部過(guò)程和公共過(guò)程的公共的或模塊級(jí)的聲明程的公共的或模塊級(jí)的聲明。可將那些可將那些與特定窗體或控件無(wú)關(guān)的代碼與特定窗體或控件無(wú)關(guān)的代碼放放入另一類(lèi)型的模塊入另一類(lèi)型的模塊 標(biāo)準(zhǔn)模塊(文件擴(kuò)展名標(biāo)準(zhǔn)模塊(文件擴(kuò)展名為為 . .BAS BAS )中。如果一個(gè)過(guò)程可能用來(lái)響應(yīng)中。如果一個(gè)過(guò)程可能用來(lái)響應(yīng)幾個(gè)不同對(duì)象中的事件,應(yīng)該將這個(gè)過(guò)程放幾

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

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

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

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

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論