關於Visual Basic 6.0類開發(上) (轉)
關於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的函式或者過程,它也是類中使用最廣泛的。在下一篇文章中我將討論,如何使用類的屬性、事件和方法進行綜合程式設計。(未完待續)
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於Visual Basic 6.0類開發(下) (轉)
- Visual Basic的類對於物件導向的支援 (轉)物件
- Visual Basic 6.0(VB6.0)詳細安裝過程
- 在Visual Basic 中使用C++ 類 (轉)C++
- 利用Visual Basic開發SAP介面程式初探-RFC
- 開發整合Microsoft Visual Basic for Application的應用系統(一) (轉)ROSAPP
- 用Visual Basic自編小遊戲 (轉)遊戲
- Visual Basic 程式設計標準(1) (轉)程式設計
- 在Visual Basic中終止Windows 95 (轉)Windows
- Visual Basic for ApplicationAPP
- Visual Basic設計圖形瀏覽器示例 (轉)瀏覽器
- Visual C++ 6.0 編 程 經 驗 (轉)C++
- 關於 Laravel6.0 開發中的簡單小問題解答Laravel
- Visual Basic.NET 中的語言新變化 (轉)
- 用Visual Basic設計更好的使用者介面 (轉)
- Visual C++ 6.0的文件/視結構 (轉)C++
- Visual Basic 14 的 14 大新特性
- Visual C++ 6.0程式設計實現列印功能(轉)C++程式設計
- 關於埠轉發
- 特性(C# 和 Visual Basic) BASIC 快速建模特性的程式語言C#
- 救命,關於類轉換問題
- 使用Visual Basic訪問資料庫幾個注意的問題 (轉)資料庫
- C#和Visual Basic之匿名型別C#型別
- Visual C++6.0一個小BUG的解決方法 (轉)C++
- 關於微信開發
- 淺談eMbedded Visual C++4.0對於Windows CE.net 的開發 (轉)C++Windows
- 將資料從 Visual Basic 傳輸到 ExcelExcel
- 自問自答系列——關於 Laravel6.0 開發中的簡單小問題解答Laravel
- 關於Basic程式直譯器及編譯原理的簡單化(1)---Basic器的語法分析及主要程式碼 (轉)C程式編譯原理語法分析
- 關於Basic程式直譯器及編譯原理的簡單化(2)---C++封裝好的Basic直譯器 (轉)C程式編譯原理C++封裝
- 關於開發檢視
- 在VC++6.0開發中實現全屏顯示 (轉)C++
- 關於基於Form的多檔案上載 (轉)ORM
- 擴 展Visual c++ MFC 類 庫 (轉)C++
- 開發了一個基於thinkphp6.0的快速開發後臺管理系統PHP
- 關於WEB應用程式的列印元件開發初探 (轉)Web元件
- 關於多個開發中心開發同一軟體的配置管理(轉)
- 手機上開發動畫 (轉)動畫