關於Visual Basic 6.0類開發(下) (轉)
關於Visual Basic 6.0類開發(下) (轉)[@more@]關於 6.0類開發(下)
2001-02-03· 新天·yesky
在Visual Basic 6.0類的技術與應用(上)(以下簡稱上文)中,我們討論了類的理論、類的建立和類的方法的實踐,實際上,類之所以能夠在工程中廣泛應用,最主要的一點是它可以非常方便的封裝許多程式設計需要的屬性,這不僅使員在一定程度上克服(ocx)和連結庫(dll)設計和中的複雜性,而且能夠提高程式程式碼的簡潔和高效性――本文將討論完整的類的程式設計,包括方法、屬性和基本事件。
(一)類的屬性的特徵和定義;
類似於標準控制元件的屬性,類的屬性允許在指定的資料範圍內進行賦值,這些值被類內的各個程式碼部分所共享。屬性的獲得和傳遞需要經過 Property Let和Property Get語句進行程式設計,當然,我們首先需要在類中進行全域性或者模組級的相應變數定義。
(二)事件的屬性和基本定義;
和窗體的事件類似,類也有兩個基本的事件,Class_Initialize(類載入時觸發)和Class_Tenate(類解除安裝時觸發),這兩個事件都是private的。實際上,我們完全可以忽略這兩個事件――只要你記得完善類的方法和屬性。
類同樣可以定義自己的事件,它和方法的程式編寫格式類似,只不過需要WithEvents關鍵字進行引數宣告,而且事件不能有任何命名引數或者可選引數,它也沒有返回值。
實際上,結構良好的方法和屬性完全可以替代結構複雜的類的事件。
(三)類的方法、事件和屬性的程式設計例項;
本程式的設計目的是,透過類控制窗體中文字框的內容的全部大寫、小寫和逆向排序轉化。
為了方便程式碼的書寫和,我在類中引用了列舉的程式設計方法。
以下程式碼在類Class1:
Option Explicit
Private WithEvents myTXT As TextBox
'方法的引數介面
Public Enum sTYLE
Lcaseit'小寫屬性
Lbigit'大寫屬性
Nlogoit'逆向排序屬性
End Enum
'自定義列舉,用來實現屬性的自動賦值
Private mvarBiaozhi As sTYLE
'實現列舉常量的連線
Public Function dONE() As String'
'DONE方法用來根據指定的列舉屬性,對
'窗體文字框進行相應的字元轉化操作
'並且返回轉化後的字串
If mvarBiaozhi = Nlogoit Then
dONE = StrReverse(myTXT)
'逆向排序
ElseIf mvarBiaozhi = Lcaseit Then
dONE = LCase(myTXT)
'強制小寫轉化
Else
dONE = UCase(myTXT)
'強制大寫轉化
End If
End Function
'DONE方法結束
Public Property Let Biaozhi(ByVal vData As sTYLE)
'獲得屬性的被賦的值
mvarBiaozhi = vData
End Property
Public Property Get Biaozhi() As sTYLE
'傳遞屬性值到類中
Set Biaozhi = mvarBiaozhi
End Property
Public Sub Attach(itTEXT As TextBox)
'連線類的方法
Set myTXT = itTEXT
End Sub
Private Sub Class_Initialize()
'本事件在類倍載入時啟用
MsgBox "你好!本程式向您展示使用類的方法、屬性、事件進行程式設計的技術!"
End Sub
Private Sub Class_Terminate()
'本事件在類被解除安裝時啟用
MsgBox "你好!記得在Class_Terminate中填寫撤銷後的程式碼!"
End Sub
'類的程式碼全部結束
(四)窗體程式碼的引用程式設計;
在窗體FORM1中新增文字控制元件TEXT1、下拉選單控制元件COMBO1、命令按鈕COMMAND1(CAPTION="開始轉化"),調整三個控制元件到適當位置。
Dim myT As New Class1
'類的引用
Private Sub Form_Load()
Combo1.Clear
Combo1.AddItem "字串大寫轉化"
Combo1.AddItem "字串小寫轉化"
Combo1.AddItem "字串逆向排序"
Combo1.ListIndex = 0
'在列表框中新增屬性選項
End Sub
Private Sub Command1_Click()
'當命令按鈕按下時啟用類
myT.Attach Text1
'方法引數聯接
Case Combo1.ListIndex
Case 0
myT.Biaozhi = Lbigit
Case 1
myT.Biaozhi = Lcaseit
Case 2
myT.Biaozhi = Nlogoit
End Select
'根據列表框的選擇,給類的Biaozhi屬性賦值
'注意,在程式設計環境中,上述屬性值自動新增
Text1.Text = myT.dONE
'返回排序結束後的字串
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set myT = Nothing
End
'良好的程式設計習慣
End Sub
怎麼樣,我們的程式碼看起來如此的簡潔,這種感覺就象是在使用一個控制元件,不僅可以隨心所欲的呼叫,而且方便的使用了vb的自動提示功能。
(五)關於類的程式設計技術的總結;
嚴格的說,類是vb程式設計中的一個相當有用的技術,同樣也是學習和掌握中的難點,類在大型軟體工程中應用是非常廣泛和卓有成效的,但是,在小型中,為了提高軟體的和程式碼的清晰度,應該避免使用較多的類模組,控制元件和聯接庫,取代以標準模組。
本文所示例的程式碼比較簡單,卻覆蓋了關於模組程式設計技術的方方面面,希望初學者能夠有所借鑑,也希望程式設計師能夠共同探討。我們應該相信,無論多麼複雜的高樓大廈都是由普普通通的方磚堆砌而成的,同樣,無論所麼複雜的軟體工程都是由基本的程式語句所構成的,程式設計愛好者、程式設計師和分析員的區別只是在於,用同樣的程式語句構建的程式的不同而已。
2001-02-03· 新天·yesky
在Visual Basic 6.0類的技術與應用(上)(以下簡稱上文)中,我們討論了類的理論、類的建立和類的方法的實踐,實際上,類之所以能夠在工程中廣泛應用,最主要的一點是它可以非常方便的封裝許多程式設計需要的屬性,這不僅使員在一定程度上克服(ocx)和連結庫(dll)設計和中的複雜性,而且能夠提高程式程式碼的簡潔和高效性――本文將討論完整的類的程式設計,包括方法、屬性和基本事件。
(一)類的屬性的特徵和定義;
類似於標準控制元件的屬性,類的屬性允許在指定的資料範圍內進行賦值,這些值被類內的各個程式碼部分所共享。屬性的獲得和傳遞需要經過 Property Let和Property Get語句進行程式設計,當然,我們首先需要在類中進行全域性或者模組級的相應變數定義。
(二)事件的屬性和基本定義;
和窗體的事件類似,類也有兩個基本的事件,Class_Initialize(類載入時觸發)和Class_Tenate(類解除安裝時觸發),這兩個事件都是private的。實際上,我們完全可以忽略這兩個事件――只要你記得完善類的方法和屬性。
類同樣可以定義自己的事件,它和方法的程式編寫格式類似,只不過需要WithEvents關鍵字進行引數宣告,而且事件不能有任何命名引數或者可選引數,它也沒有返回值。
實際上,結構良好的方法和屬性完全可以替代結構複雜的類的事件。
(三)類的方法、事件和屬性的程式設計例項;
本程式的設計目的是,透過類控制窗體中文字框的內容的全部大寫、小寫和逆向排序轉化。
為了方便程式碼的書寫和,我在類中引用了列舉的程式設計方法。
以下程式碼在類Class1:
Option Explicit
Private WithEvents myTXT As TextBox
'方法的引數介面
Public Enum sTYLE
Lcaseit'小寫屬性
Lbigit'大寫屬性
Nlogoit'逆向排序屬性
End Enum
'自定義列舉,用來實現屬性的自動賦值
Private mvarBiaozhi As sTYLE
'實現列舉常量的連線
Public Function dONE() As String'
'DONE方法用來根據指定的列舉屬性,對
'窗體文字框進行相應的字元轉化操作
'並且返回轉化後的字串
If mvarBiaozhi = Nlogoit Then
dONE = StrReverse(myTXT)
'逆向排序
ElseIf mvarBiaozhi = Lcaseit Then
dONE = LCase(myTXT)
'強制小寫轉化
Else
dONE = UCase(myTXT)
'強制大寫轉化
End If
End Function
'DONE方法結束
Public Property Let Biaozhi(ByVal vData As sTYLE)
'獲得屬性的被賦的值
mvarBiaozhi = vData
End Property
Public Property Get Biaozhi() As sTYLE
'傳遞屬性值到類中
Set Biaozhi = mvarBiaozhi
End Property
Public Sub Attach(itTEXT As TextBox)
'連線類的方法
Set myTXT = itTEXT
End Sub
Private Sub Class_Initialize()
'本事件在類倍載入時啟用
MsgBox "你好!本程式向您展示使用類的方法、屬性、事件進行程式設計的技術!"
End Sub
Private Sub Class_Terminate()
'本事件在類被解除安裝時啟用
MsgBox "你好!記得在Class_Terminate中填寫撤銷後的程式碼!"
End Sub
'類的程式碼全部結束
(四)窗體程式碼的引用程式設計;
在窗體FORM1中新增文字控制元件TEXT1、下拉選單控制元件COMBO1、命令按鈕COMMAND1(CAPTION="開始轉化"),調整三個控制元件到適當位置。
Dim myT As New Class1
'類的引用
Private Sub Form_Load()
Combo1.Clear
Combo1.AddItem "字串大寫轉化"
Combo1.AddItem "字串小寫轉化"
Combo1.AddItem "字串逆向排序"
Combo1.ListIndex = 0
'在列表框中新增屬性選項
End Sub
Private Sub Command1_Click()
'當命令按鈕按下時啟用類
myT.Attach Text1
'方法引數聯接
Case Combo1.ListIndex
Case 0
myT.Biaozhi = Lbigit
Case 1
myT.Biaozhi = Lcaseit
Case 2
myT.Biaozhi = Nlogoit
End Select
'根據列表框的選擇,給類的Biaozhi屬性賦值
'注意,在程式設計環境中,上述屬性值自動新增
Text1.Text = myT.dONE
'返回排序結束後的字串
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set myT = Nothing
End
'良好的程式設計習慣
End Sub
怎麼樣,我們的程式碼看起來如此的簡潔,這種感覺就象是在使用一個控制元件,不僅可以隨心所欲的呼叫,而且方便的使用了vb的自動提示功能。
(五)關於類的程式設計技術的總結;
嚴格的說,類是vb程式設計中的一個相當有用的技術,同樣也是學習和掌握中的難點,類在大型軟體工程中應用是非常廣泛和卓有成效的,但是,在小型中,為了提高軟體的和程式碼的清晰度,應該避免使用較多的類模組,控制元件和聯接庫,取代以標準模組。
本文所示例的程式碼比較簡單,卻覆蓋了關於模組程式設計技術的方方面面,希望初學者能夠有所借鑑,也希望程式設計師能夠共同探討。我們應該相信,無論多麼複雜的高樓大廈都是由普普通通的方磚堆砌而成的,同樣,無論所麼複雜的軟體工程都是由基本的程式語句所構成的,程式設計愛好者、程式設計師和分析員的區別只是在於,用同樣的程式語句構建的程式的不同而已。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-988075/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於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 C++ 6.0 編 程 經 驗 (轉)C++
- Visual Basic設計圖形瀏覽器示例 (轉)瀏覽器
- 關於 Laravel6.0 開發中的簡單小問題解答Laravel
- Visual Basic.NET 中的語言新變化 (轉)
- 用Visual Basic設計更好的使用者介面 (轉)
- Visual C++ 6.0的文件/視結構 (轉)C++
- Visual Basic 14 的 14 大新特性
- VC++ 6.0下OpenGL開發環境配置C++開發環境
- 關於埠轉發
- 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
- CentOS 6.0下vncserver安裝配置 [轉]CentOSVNCServer
- 將資料從 Visual Basic 傳輸到 ExcelExcel
- 自問自答系列——關於 Laravel6.0 開發中的簡單小問題解答Laravel
- 關於Basic程式直譯器及編譯原理的簡單化(1)---Basic器的語法分析及主要程式碼 (轉)C程式編譯原理語法分析
- 關於Basic程式直譯器及編譯原理的簡單化(2)---C++封裝好的Basic直譯器 (轉)C程式編譯原理C++封裝
- 關於開發檢視
- 在VC++6.0開發中實現全屏顯示 (轉)C++
- 開發了一個基於thinkphp6.0的快速開發後臺管理系統PHP
- 擴 展Visual c++ MFC 類 庫 (轉)C++
- 關於WEB應用程式的列印元件開發初探 (轉)Web元件
- 關於多個開發中心開發同一軟體的配置管理(轉)