'VB:Collection (集合)對象示例
'━━━━━━━━━━━━━━━━━━━━━━━━━━
'本示例建立一個命名爲 MyClasses 的 Collection 對象,再建立一個對話框,讓用戶可從對話框中將對象建立到該集合對象中。
'若要觀察程序如何工作,請先在“插入”菜單上選擇“類模塊”命令,然後在 Class1 的模塊級中聲明一個公用變量,
'命名爲 InstanceName(類型爲 Public InstanceName),此變量用來保存每個類實例的名稱。不要更改類的缺省名稱 Class1。
'將下列代碼複製到另一個模塊的“通用”節中,然後在另一個過程中用 ClassNamer 語句使它啓動激活。
'(本示例僅使用支持類的主機應用程序。)
Sub ClassNamer()
Dim MyClasses As New Collection ' 建立一個集合對象(Collection)。
Dim Num ' 計數用變量,用來對對象的個數計數。
Dim Msg As String ' 提示信息用變量。
Dim TheName, MyObject, NameList ' 對象信息用變體。
Do
Dim Inst As New Class1 ' 建立 Class1 的新實例。
Num = Num + 1 ' 把計數變量 Num 加一,然後要求輸入新對象個體的名稱。
Msg = "Please enter a name for this object. " & Chr (13) & "Press Cancel to see names in collection. "
TheName = InputBox (Msg, "Name the Collection Items " )
Inst.InstanceName = TheName ' 將名稱送入對象實例。
If Inst.InstanceName <> " " Then ' 若用戶輸入了名稱,將它加入集合。
MyClasses.Add Item:=Inst, Key:=CStr (Num) ' 將命名的對象加入集合。
End If
Set Inst = Nothing ' 清除當前的引用,爲對下一個對象做準備。
Loop Until TheName = " "
For Each MyObject In MyClasses ' 建立名稱列表。
NameList = NameList & MyObject.InstanceName & Chr (13)
Next MyObject
MsgBox NameList, , "Instance Names In MyClasses Collection " ' 將名稱列表在消息框中顯示出來。
For Num = 1 To MyClasses.Count ' 從集合中刪除名字。
MyClasses.Remove 1 ' 每刪除一個對象後,集合會自動重排順序,故每次迭代時只需刪除第一個對象即可。
Next
End Sub
'━━━━━━━━━━━━━━━━━━━━━━━━━━
'本示例建立一個命名爲 MyClasses 的 Collection 對象,再建立一個對話框,讓用戶可從對話框中將對象建立到該集合對象中。
'若要觀察程序如何工作,請先在“插入”菜單上選擇“類模塊”命令,然後在 Class1 的模塊級中聲明一個公用變量,
'命名爲 InstanceName(類型爲 Public InstanceName),此變量用來保存每個類實例的名稱。不要更改類的缺省名稱 Class1。
'將下列代碼複製到另一個模塊的“通用”節中,然後在另一個過程中用 ClassNamer 語句使它啓動激活。
'(本示例僅使用支持類的主機應用程序。)
Sub ClassNamer()
Dim MyClasses As New Collection ' 建立一個集合對象(Collection)。
Dim Num ' 計數用變量,用來對對象的個數計數。
Dim Msg As String ' 提示信息用變量。
Dim TheName, MyObject, NameList ' 對象信息用變體。
Do
Dim Inst As New Class1 ' 建立 Class1 的新實例。
Num = Num + 1 ' 把計數變量 Num 加一,然後要求輸入新對象個體的名稱。
Msg = "Please enter a name for this object. " & Chr (13) & "Press Cancel to see names in collection. "
TheName = InputBox (Msg, "Name the Collection Items " )
Inst.InstanceName = TheName ' 將名稱送入對象實例。
If Inst.InstanceName <> " " Then ' 若用戶輸入了名稱,將它加入集合。
MyClasses.Add Item:=Inst, Key:=CStr (Num) ' 將命名的對象加入集合。
End If
Set Inst = Nothing ' 清除當前的引用,爲對下一個對象做準備。
Loop Until TheName = " "
For Each MyObject In MyClasses ' 建立名稱列表。
NameList = NameList & MyObject.InstanceName & Chr (13)
Next MyObject
MsgBox NameList, , "Instance Names In MyClasses Collection " ' 將名稱列表在消息框中顯示出來。
For Num = 1 To MyClasses.Count ' 從集合中刪除名字。
MyClasses.Remove 1 ' 每刪除一個對象後,集合會自動重排順序,故每次迭代時只需刪除第一個對象即可。
Next
End Sub