請問:如何創建 孫類 實體?謝謝!
類模塊1:父類s 父類集合
類模塊2:父類 父類
類模塊3:子類s 子類集合
類模塊4:子類 子類
類模塊5:孫類s 孫類集合
類模塊6:孫類 孫類
我在 父類s 的 Add 程序中:
public Fucntion Add
Dim 子 As 子類
Set 子 = 子類
’我想在創建子類實體時,默認的在 新創建的子類實體 里創建一個 孫的實體, 應該怎么做呢? 即怎么實作 set 孫 = 子.孫類s.add ?
end Fucntion
我是業余選手,已經先暈了,不知道說清楚沒有啊,先謝謝啦!
uj5u.com熱心網友回復:
默認建構式?創建物件
創建物件的最簡單方法是在“工具箱”中雙擊控制元件。但是,對 Visual Basic 中的所有可用物件以及來自其它應用程式的所有可用物件,要想充分體現它們的優勢,可在運行時用 Visual Basic 的可編程性能創立物件。
用物件變數創建物件參考。
用類模塊“從零開始”創建自己的物件。
用集合物件創建自己的集合。
詳細資訊 其它章節會介紹如何訪問物件。例如,在“用部件編程”中將討論 CreateObject 和 GetObject 函式。
使用物件變數
除了存盤值以外,變數可參考物件。如同給變數賦值一樣,基于下列相同理由,可把物件賦給變數:
變數名往往比變數所含的值(或者,在此情況下,所含值就是它們參考的物件)短而好記。
在運行代碼時,為了參考其它物件,應改變變數。
參考包含物件的變數比反復參考物件本身有更高的效率。
使用物件變數與使用常規變數一樣,只不過多了把物件賦予變數這一步:
首先宣告變數:
Dim variable As class
然后把物件賦予變數:
Set variable = object
宣告物件變數
宣告物件變數的方法和宣告其它變數一樣,要用 Dim、ReDim、Static、Private 和 Public。僅有的不同在于可選的 New 關鍵字和 Class 引數,本章后面將會對 New 關鍵字和 Class 引數都作介紹。語法是:
{Dim | ReDim | Static | Private | Public} variable As [New] class
例如,可以宣告一個物件變數,它參考應用程式中的被稱做 frmMain 的表單:
Dim FormVar As New frmMain '宣告一個型別為 frmMain
'的物件變數。
也可以宣告一個物件變數,它參考應用程式中的任何表單:
Dim anyForm As Form '一般表單變數。
類似地,可以宣告一個物件變數,它能夠參考應用程式中的任何文本框:
Dim anyText As TextBox '可以參考任何文本框
'(但只能是一個文本框)。
還可以宣告一個物件變數,它能夠參考任何型別的控制元件:
Dim anyControl As Control '一般控制元件變數。
注意,可以宣告一個參考應用程式中的指定表單的表單變數,但不能宣告參考特定控制元件的控制元件變數。可以宣告能夠參考控制元件的特定型別(如 TextBox 或串列框)的控制元件變數,但不是參考那種型別的一個特定控制元件(如 txtEntry 或 List1)。但是,可把特定的控制元件賦予那種型別的變數。例如,對于具有串列框 lstSample 的表單可以這樣編碼:
Dim objDemo As ListBox
Set objDemo = lstSample
賦值物件變數
用 Set 陳述句將物件賦予物件變數:
Set variable = object
無論何時,只要希望物件變數參考物件,就可使用 Set 陳述句。
有時可用物件變數,尤其可用控制元件變數直接縮短要鍵入的代碼。例如,原來的代碼是這樣的:
If frmAccountDisplay!txtAccountBalance.Text < 0 Then
frmAccountDisplay!txtAccountBalance.BackColor = 0 frmAccountDisplay!txtAccountBalance.ForeColor = 255
End If
如果使用控制元件變數,程式就可顯著縮短:
Dim Bal As TextBox
Set Bal = frmAccountDisplay!txtAccountBalance
If Bal.Text < 0 Then
Bal.BackColor = 0
Bal.ForeColor = 255
End If
特定物件型別與一般物件型別
特定的物件變數必須參考特定型別的物件或類。特定的表單變數只能參考應用程式中的一個表單(盡管可在該表單的諸多實體中參考其中之一)。與此相似,特定的控制元件變數只能參考應用程式中的特定型別的控制元件,比如 TextBox 或者串列框。請看一例,打開新的工程,在表單中放置一文本框。將下列代碼添加到表單中:
Private Sub Form_Click ()
Dim anyText As TextBox
Set anyText = Text1
anyText.Text = "Hello"
End Sub
運行應用程式并單擊表單。文本框的 Text 屬性將變成 "Hello"。
一般物件變數可在多種特定物件型別中參考其中一種。例如,一般表單變數可參考應用程式中的任何表單;一般控制元件變數可參考應用程式中任何表單上的任何控制元件。請看一例,打開新的工程并在表單中按任意順序放置若干 Frame、Label 和 CommandButton 控制元件。將下列代碼添加到表單中:
Private Sub Form_Click ()
Dim anyControl As Control
Set anyControl = Form1.Controls (3)
anyControl.Caption = "Hello"
End Sub
運行程式并單擊表單。剛才放入表單中的第三個控制元件的標題將變成 "Hello"。
Visual Basic 中有四種一般物件:
一般物件型別 可參考的物件
Form 應用程式中的任何表單(包括 MDI 子表單和 MDI 表單)。
Control 應用程式中的任何控制元件。
MDIForm 應用程式中的 MDI 表單(如果應用程式有 MDI 表單的話)。
Object 任何物件。
在不知道變數運行時是否參考特定型別的物件時,一般物件變數是很有用的。例如,如果要書寫代碼,并使之在應用程式的任何表單中都可操作,則必須使用一般表單變數。
注意 由于應用程式中只能有一個 MDI 表單,因此不必使用一般的 MDIForm 型別。無論何時,一旦需要宣告參考 MDI 表單的表單變數,就可用特定的 MDIForm 型別(或者是 MDIForm1,或者是對 MDI 表單的 Name 屬性指定的任何名稱),而不用一般的 MDIForm 型別。實際上,由于在運行應用程式前,Visual Basic 就能夠決定參考特定表單型別的屬性和方法,因此總應使用特定的 MDIForm 型別。
只是出于完整性的考慮才提供一般的 MDIForm 型別;在 Visual Basic 的今后版本中,單個應用程式中可以擁有多個 MDI 表單,這將是非常有用的。
作為物件的表單
表單最常用到的是構造應用程式界面,但也常常是應用程式中其它模塊呼叫的物件。表單與類模塊關系密切。兩者之間的主要區別在于,表單是可視物件,而類模塊卻沒有可視界面。
添加自定義方法和屬性
可對表單添加自定義方法和屬性,并可從應用程式中的其它模塊訪問它們。為了創建表單的新方法,請添加用 Public 宣告的程序。
'自定義 Form1 的方法。
Public Sub LateJobsCount ()
.
. ' <me>
.
End Sub
可用下面這個陳述句從其它模塊呼叫 LateJobsCount 程序:
Form1.LateJobsCount
創建表單的新屬性就象在表單模塊中宣告一個公用變數那樣簡單:
Public IDNumber As Integer
可用下面兩個陳述句從其它模塊設定和回傳 Form1 的 IDNumber 值:
Form1.IDNumber = 3
Text1.Text = Form1.IDNumber
也可用 Property 程序向表單添加自定義屬性。
詳細資訊 “用物件編程”提供了 Property 程序的詳細材料。
注意 不必加載表單就可呼叫表單的變數或自定義方法,還可設定表單的自定義屬性。于是,不必將表單加載到記憶體就可運行有關表單的代碼。同樣,參考控制元件而不參考其屬性或方法時也不會加載表單。
使用 New 關鍵字
用 New 關鍵字創建新物件,這個物件被視為它的類所定義的物件。可用 New 創建集合、表單的實體以及類模塊中定義的類。
在表單上使用 New 關鍵字
在設計時創建的表單是類。可用 New 關鍵字創建這個類的新實體。為了看到這一作業程序,請在表單上畫出一個命令按鈕和其它幾個控制元件。在“屬性”視窗中將表單的 Name 屬性設定成 Sample。在命令按鈕的 Click 事件程序中添加下列代碼:
Dim x As New Sample
x.Show
運行應用程式,并單擊命令按鈕數次。把最前面的表單移到一邊。因為表單是具有可視界面的類,所以可看到附加副本。每個表單在相同位置上都有相同控制元件,而且這些位置也正是表單在設計時的位置。
注意 要使表單變數和已加載表單的實體一直存在,請用 Static 或 Public 變數,而不要用區域變數。
也可將 New 關鍵字與 Set 陳述句并用。請試用命令按鈕的 Click 事件程序中的代碼:
Dim f As Form1
Set f = New Form1
f.Caption = "hello"
f.Show
將 New 關鍵字和 Set 陳述句并用會加快運行速度,因此,這種方法值得推薦。
對其它物件使用 New 關鍵字
可用 New 關鍵字從類模塊中定義的類創建集合和物件。試用下例說明這一作業程序。
此例說明了 New 關鍵字是如何創建類的實體的。打開新工程,在 Form1 上畫出一個 CommandButton 控制元件。從“工程”選單中選擇“添加類模塊”命令,從而在工程中添加一個類模塊。設定類模塊的 Name 屬性為 ShowMe 。
Form1 中的下列代碼創建了類 ShowMe 的新實體,還呼叫了包含在類模塊中的程序。
Public clsNew As ShowMe
Private Sub Command1_Click ()
Set clsNew = New ShowMe
clsNew.ShowFrm
End Sub
類模塊中的 ShowFrm 程序創建類 Form1 的新實體,顯示表單,然后使其最小化。
Sub ShowFrm ()
Dim frmNew As Form1
Set frmNew = New Form1
frmNew.Show
frmNew.WindowState = 1
End Sub
為了應用這個例子,請運行應用程式并單擊命令按鈕數次。在創建 ShowMe 類的每一個新實體時將看到最小化的表單圖示出現在桌面上。
詳細資訊 關于利用 New 創建物件的資訊,請參閱“用部件編程”。
New 關鍵字的限制
下表說明不能用 New 關鍵字做什么。
不能用 New 創建 不允許的代碼的例子
基本資料型別的變數。 Dim X As New Integer
任何一般物件型別的變數。 Dim X As New Control
任何特定控制元件型別的變數。 Dim X As New ListBox
任何特定控制元件的變數。 Dim X As New lstNames
釋放對物件的參考
每個物件都使用記憶體和系統資源。當不再使用物件時及時釋放這些資源,這是良好的編程習慣。
用 Unload 從記憶體中卸載表單或控制元件。
用 Nothing 釋放物件變數占用的資源。用 Set 陳述句將 Nothing 賦予物件變數。
詳細資訊 請參閱語言參考中的“Unload 事件”和“Nothing”部分。
給程序傳遞物件
可在 Visual Basic 中將物件傳遞給程序。在下面的代碼例子中假定表單中有一 CommandButton 控制元件:
Private Sub Command1_Click ()
'呼叫 Demo 子程序,并將表單傳遞給它。
Demo Form1
End Sub
Private Sub Demo (x As Form1)
'在螢屏中使表單居中。
x.Left = (Screen.Width - x.Width) / 2
End Sub
可以通過參考把物件傳遞給引數,然后在程序內將引數設定成新物件。為了看到這一作業程序,打開工程并插入第二個表單。在每個表單中安放一個圖片框。需要改變的屬性設定值如下表所示:
物件 屬性 設定
Form2 上的 圖片框 Name
Picture
Picture2
c:\vb\icons\arrows\arw01dn.ico
Form1_Click 事件程序呼叫 Form2 中的 GetPicture 程序,并把一個空的圖片框傳遞給它。
Private Sub Form_Click ()
Form2.GetPicture Picture1
End Sub
Form2 中的 GetPicture 程序把 Form2 上的圖片框的 Picture 屬性賦予 Form1 上的空圖片框。
Private objX As PictureBox
Public Sub GetPicture (x As PictureBox)
'將傳遞進來的圖片框賦予物件變數。
Set objX = x
'將 Picture 屬性值賦予 Form1 的圖片框。
objX.Picture = picture2.Picture
End Sub
為了應用這個例子,請運行程式并單擊 Form1。在 Form1 的圖片框中將看到出現了 Form2 中的圖示。
詳細資訊 上述主題意在概述物件。更詳細內容,請參閱“用物件編程”和“用部件編程”。
uj5u.com熱心網友回復:
MSDN98_1.ISO http://pan.baidu.com/s/1dDF41ix, MSDN98_2.ISO http://pan.baidu.com/s/1bnGo0Vluj5u.com熱心網友回復:
用物件編程物件是 Visual Basic 程式設計的核心。表單和控制元件都是物件。資料庫也是物件。到處都有物件存在。
如果曾經使用過 Visual Basic,或著使用過本書前五章中的示例,那么就已用物件進行程序式設計了,但是有比至今所知道的物件更多的物件。
在本章中,能接受用戶個性的用戶定義型別變成類。將會看到,從已定義的類中創建自己的物件非常容易,而且使用物件能簡化編碼,并增強代碼的重用。
主題
Visual Basic 中的物件
回顧用在物件的創建、使用和講解中的正確的術語。介紹集合物件、With 陳述句和使用物件的其它方法。
查找物件資訊
介紹如何使用物件瀏覽器查看物件的屬性、方法和事件,如何在工程和庫中查找事項,并給自己的物件添加說明。
創建自己的類
建立類很容易,可能會驚訝的發現自己已經建立過類了。循序漸進的程序介紹物件的創建和存活期的內容。
向類中添加屬性和方法
介紹如何使用屬性程序以創建能被賦予有效值的屬性,展示如何創建許多不同型別的屬性。
向類中添加事件
自己的物件能引發在表單或其它物件中處理的事件。
命名屬性、方法和事件
遵從一些簡單規則能使自己的物件更易于使用、重用和共享。
創建資料識別類
使得系結物件到一個資料庫或其他得資料源很容易。類既可以作為資料源,也可以作為資料使用者。
多型
能夠把恐龍和跳蚤兩者都做為動物對待,是很有用的。通過多個界面,可以做到這一點,它也提供了展開程式的新方法。
用自己的物件編程
物件一旦創建,如何把它們加入到程式中,跟蹤它們以及在使用之后的處理等問題?
物件模型
從自己的類所創建的物件與其它物件的關系如何?物件模型表示了物件包含其它物件的方法,這是有關程式的強大的結構化原理。
創建自己的集合類
介紹使用 Visual Basic 集合物件的一些限制,展示如何創建自己的集合類。
ActiveX 設計器
設計器將“可視化”引入 Visual Basic。已經使用過了表單設計器,但是在 ActiveX 設計器方面還有一個全新的領域。
到此并沒有結束。下一步是“使用部件的程式設計”,它介紹如何使用 Visual Basic 控制其它應用程式所提供的物件。
示例應用程式
ProgWOb.vbg
本章的一些代碼示例來自“使用物件的程式設計”(ProgWOb.vbg) 和資料識別類 (Dataware.vbp) 示例。它們在示例目錄中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/59429.html
標籤:VB基礎類
