程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB6 >> vb變量、常數和數據類型及過程概述(九)

vb變量、常數和數據類型及過程概述(九)

編輯:VB6

過程概述

將程序分割成較小的邏輯部件就可以簡化程序設計任務。稱這些部件為過程,它們可以變成增強和擴展 Visual Basic 的構件。 過程可用於壓縮重復任務或共享任務,例如,壓縮頻繁的計算、文本與控件操作和數據庫操作。
用過程編程有兩大好處:
1.過程可使程序劃分成離散的邏輯單元,每個單元都比無過程的整個程序容易調試。
2.一個程序中的過程,往往不必修改或只需稍作改動,便可以成為另一個程序的構件。
在 Visual Basic 中使用下列幾種過程:
Sub 過程不返回值。
Function 過程返回值。
property 過程返回並指定值,以及設置對象引用。
詳細信息 關於屬性過程,請參閱第九章“用對象編程”。

Sub 過程
子過程是在響應事件時執行的代碼塊。將模塊中的代碼分成子過程後,在應用程序中查找和修改代碼變得更容易了。
子過程的語法是:
[Private|Public][Static]Sub procedurename (arguments)
statements
End Sub
每次調用過程都會執行 Sub 和 End Sub 之間的 statements。可以將子過程放入標准模塊、類模塊和窗體模塊中。按照缺省規定,所有模塊中的子過程為 Public(公用的),這意味著在應用程序中可隨處調用它們。
過程的 arguments 類似於變量聲明,它聲明了從調用過程傳遞進來的值。在 Visual Basic 中應區分通用過程和事件過程這兩類子過程。

通用過程
通用過程告訴應用程序如何完成一項指定的任務。一旦確定了通用過程,就必須專由應用程序來調用。反之,直到為響應用戶引發的事件或系統引發的事件而調用事件過程時,事件過程通常總是處於空閒狀態。
為什麼要建立通用過程呢?理由之一就是,幾個不同的事件過程也許要執行同樣的動作。將公共語句放入一分離開的過程(通用過程)並由事件過程來調用它,誠為編程上策。這樣一來就不必重復代碼,也容易維護應用程序。例如,VCR 示例應用程序使用了一個通用過程,幾個不同滾動按鈕的 Click 事件都調用這個通用過程。圖 5.7 說明了通用過程的使用。Click事件中的代碼調用按鈕管理器的子過程,子過程運行自身的代碼,然後將控制返回到 Click 事件過程。

事件過程當 Visual Basic 中的對象對一個事件的發生作出認定時,便自動用相應於事件的名字調用該事件的過程。因為名字在對象和代碼之間建立了聯系,所以說事件過程是附加在窗體和控件上的。
一個控件的事件過程將控件的(在 Name 屬性中規定的)實際名字、下劃線 (_) 和事件名組合起來。例如,如果希望在單擊了一個名為cmdPlay 的命令按鈕之後,這個按鈕會調用事件過程,則要使用cmdPlay_Click 過程。
一個窗體事件過程將詞匯 "Form"、下劃線和事件名組合起來。如果希望在單擊窗體之後,窗體會調用事件過程,則要使用 Form_Click 過程。(和控件一樣,窗體也有唯一的名字,但不能在事件過程的名字中使用這些名字。)如果正在使用 MDI 窗體,則事件過程將詞匯 " MDIForm" 、下劃線和事件名組合起來,如MDIForm_Load。
所有的事件過程使用相同的語法。

雖然可以自己編寫事件過程,但使用 Visual Basic 提供的代碼過程會更方便,這個過程自動將正確的過程名包括進來。從“對象框”中選擇一個對象,從“過程框”中選擇一個過程,就可在“代碼編輯器” 窗口選擇一個模板。
在開始為控件編寫事件過程之前先設置控件的 Name 屬性,這不失為一個好主意。如果對控件附加一個過程之後又更改控件的名字,那麼也必須更改過程的名字,以符合控件的新名字。否則,Visual Basic 無法使控件和過程相符。過程名與控件名不符時,過程就成為通用過程。
詳細信息 Visual Basic 可識別各種窗體和控件的各種事件。關於所有事件的說明,請參閱語言參考。

Function 過程
Visual Basic 包含內置的或內部的函數,如 Sqr、Cos 或 Chr。此外,還可用 Function 語句編寫自己的 Function 過程。
函數過程的語法是:
Private|Public][Static]Function procedurename (arguments) [As type]
statements
End Function
與 Sub 過程一樣,Function 過程也是一個獨立的過程,可讀取參數、執行一系列語句並改變其參數的值。與子過程不同,Function 過程可返回一個值到調用的過程。在Sub 過程與Function 過程之間有三點區別:
一般說來,讓較大的語句或表達式的右邊包含函數過程名和參數(returnvalue = function),這就調用了函數。
與變量完全一樣,函數過程有數據類型。這就決定了返回值的類型(如果沒有 As 子句,缺省的數據類型為 Variant)。
給 procedurename 自身賦一個值,就可返回這個值。Function 過程返回一個值時,該值可成為較大表達式的一部分。
例如,下面是已知直角三角形兩直角邊的值,計算第三邊(斜邊)的函數:
Function Hypotenuse (A As Integer, B As Integer) As String
Hypotenuse = Sqr (A ^ 2 + B ^ 2)
End Function
在 Visual Basic 中調用 Function 過程的方法和調用任何內部函數的方法是一樣的:
Label1.Caption = Hypotenuse(CInt(Text1.Text), _
CInt(Text2.Text))
strX = Hypotenuse (Width, Height)
詳細信息 關於函數過程的詳細信息,請參閱《Visual Basic 6.0語言參考手冊》中的“Function 語句”。調用各種類型的過程的技巧,在本章後面的“調用過程”部分有詳細討論。

使用過程
創建新過程
要創建新的通用過程,請
在“代碼”窗口輸入過程頭並按下回車鍵。過程頭以 Sub 或 Function 打頭,再接一個名字。例如,可以用以下任一方式輸入:
Sub UpdateForm ()
Function GetCoord ()
通過完成新過程的模板, Visual Basic 作出反應。

選擇現有過程
要在當前模塊中查看過程,請
為了查看現有通用過程,在“代碼”窗口的“對象框”中選擇“通用”,然後在“過程框”中選擇過程。
-或者-
為查看事件過程,在“代碼”窗口的“對象框”中選擇適當的對象,然後在“過程框”中選擇事件。
要查看其它模塊中的過程,請
1. 在“視圖”菜單中選取“對象浏覽器”。
2. 在“工程/庫”框中選擇工程。
3. 在“類/模塊”列表中選擇模塊,並在“成員”列表中選擇過程。
4. 選取“查看定義”。

調用過程
調用過程有諸多技巧,它們與過程的類型、位置以及在應用程序中的使用方式有關。下面的章節說明如何調用 Sub 過程和 Function 過程。

調用 Sub 過程
與 Sub 過程不同,在表達式中,Sub 過程不能用其名字調用。調用 Sub 過程的是一個獨立的語句。Sub 過程還有一點與函數不一樣,它不會用名字返回一個值。但是,與 Function過程一樣,Sub 過程也可以修改傳遞給它們的任何變量的值。
調用 Sub 過程有兩種方法:
'以下兩個語句都調用了名為 MyProc 的 Sub 過程。
Call MyProc (FirstArgument, SecondArgument)
MyProc FirstArgument, SecondArgument
注意,當使用 Call 語法時,參數必須在括號內。若省略 Call 關鍵字,則也必須省略參數兩邊的括號。

調用函數過程
通常,調用自行編寫的函數過程的方法和調用 Visual Basic 內部函數過程(例如 Abs)的方法一樣;即在表達式中寫上它的名字。
'下面的語句都調用函數 ToDec。
Print 10 * ToDec
X = ToDec
If ToDec = 10 Then Debug.Print "Out of Range"
X = AnotherFunction ( 10 * ToDec)
就像調用 Sub 過程那樣,也能調用函數。下面的語句都調用同一個函數:
Call Year (Now)Year Now
當用這種方法調用函數時,Visual Basic 放棄返回值。

調用其它模塊中的過程
在工程中的任何地方都能調用其它模塊中的公用過程。可能需要指定這樣的模塊,它包含正在調用的過程。調用其它模塊中的過程的各種技巧,取決於該過程是在窗體模塊中、類模塊中還是標准模塊中。

窗體中的過程
所有窗體模塊的外部調用必須指向包含此過程的窗體模塊。如果在窗體模塊 Form1 中包含 SomeSub 過程,則可使用下面的語句調用 Form1 中的過程:
Call Form1.SomeSub(arguments)

類模塊中的過程
與窗體中調用過程類似,在類模塊中調用過程要調用與過程一致並且指向類實例的變量。例如,DemoClass 是類 Class1 的實例:
Dim DemoClass as New Class1
DemoClass.SomeSub
但是不同於窗體的是,在引用一個類的實例時,不能用類名作限定符。必須首先聲明類的實例為對象變量(在這個例子中是 DemoClass )並用變量 名引用它。
詳細信息 可在第九章“用對象編程”中查找關於對象變量和類模塊的詳細信息。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved