關於Visual Basic 6.0類開發(上) (轉)

worldblog發表於2007-12-04
關於Visual Basic 6.0類開發(上) (轉)[@more@]關於 6.0類開發(上)
2001-02-03· 新天·yesky

  對員和愛好者來說,VB中類的技術是學習中的一個難點,在大型的開發過程中,模組(Moudle)、(Active ocx)、連結庫(Active dll)和類(Class moudle)構成了化、高效化的軟體工程,而類的技術是控制元件和連結庫技術的基礎,因此掌握類的理論和程式設計方法是非常有意義的。

(一)類的基本定義和應用概述

  類是包含了方法、屬性、資料成員的高階程式碼模組,它既在模組的範疇之內,又是一個沒有圖形介面的Active ocx,程式設計師可以象使用控制元件一樣使用它,但卻不能看到它,值得注意的是,類是不能繼承的。
類能夠使我們高效的完成對某一個或者某幾個特定的的複雜操作,物件的動作就是類的方法,物件的屬性就是類的屬性過程。相對而言,如果程式設計的物件是一組事物,那麼,我們採用標準模組的方式是非常合適的,在下列兩種情況下,應該使用類進行程式碼處理:

  (1)建立大量性質相近的物件;

  (2)提高程式碼的封裝性。

   類的建立非常簡單,在進行程式碼編寫的時候,在“工程”選單中選擇“新增類模組”專案,就可以新增一個空白的類。

   類一般以.cls作為副檔名儲存。

  (二)類的方法的實現

   類的方法類似於動態連結庫的介面,它能夠接受其他窗體程式碼的指定型別引數,並且傳遞到類中。一般來說類的方法是能夠指定是否有返回值的。它在類中通常是一個public過程。請看下面的程式碼示例,它使一個密碼框拒絕非字母的輸入:

  (1)類cls的程式碼;

   Option Explicit'變數檢查

    Private WithEvents mytxt As TextBox

    '本類中的方法接受和控制一個text密碼框

    Dim isNUM As Boolean

    '類的模組級變數

    Public Sub Attach(itTEXT As TextBox)

    '接受外部變數到mytxt中

    Set mytxt = itTEXT

   End Sub

   Private Sub mytxt_KeyUp(KeyCode As Integer, Shift As Integer)

    isNUM = (KeyCode >= 65) And (KeyCode <= 90)

    '測試密碼框的鍵盤輸入是否是英文字母

    If isNUM = False Then

     Beep

     mytxt.Text = ""

     '如果輸入不是英文字母則響鈴並且清空密碼框內容

     MsgBox "字元輸入!"

    End If

    De.Print mytxt.Text

    '輸出密碼框內容

    End Sub

    '類的程式碼結束

  (2)類的引用

  已經編寫完成的類可以經過兩種格式進行引用,第一種方式:Private(public或者dim) myCLS(指定的類名) As New cls(編寫完成的類名);第二種方式較多用於程式編寫風格較“老”的程式設計師:首先在窗體程式碼中進行模組級宣告――Dim myCLS As cls,然後在具體程式碼過程中進行具體定義―― Set mycls = New cls。這兩種方式的和程式碼的簡潔性方面可能會有所差別,但在筆者的程式設計實踐中,並沒有什麼特別的感覺,不過我較多使用第一種方式,因為它書寫起來更加方便。另外,在程式碼結束的時候,使用 Set myCLS = Nothing來取消類的資源佔用是一種非常好的程式設計習慣。

  在窗體form1中(窗體有一個密碼框控制元件text1,passworldchar="*")新增以下程式碼:

  Option Explicit

   Private myCLS As New cls

   '引用cls

   Private Sub Form_Load()

   myCLS.Attach Text1

   '啟動類

  End Sub

  '在程式碼結束時記得釋放資源

  Private Sub Form_Unload(Cancel As Integer)

   Set myCLS = Nothing

  End

 End Sub

   本文程式碼展示了類的方法的程式碼編寫過程和方式(儘管它和類的事件非常相似),它的效果是,如果密碼框中被輸入了非字母,則系統振鈴,並刪除密碼框中的原來的資料――在一定程度上保護密碼。
類的方法可以不需要任何引數,這一點類似一個public的函式或者過程,它也是類中使用最廣泛的。在下一篇文章中我將討論,如何使用類的屬性、事件和方法進行綜合程式設計。(未完待續)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-988074/,如需轉載,請註明出處,否則將追究法律責任。

相關文章