VB:Collection (集合)對象示例

'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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章