CCSMenu.cls
上传用户:davilee3
上传日期:2015-04-22
资源大小:986k
文件大小:2k
源码类别:

浏览器

开发平台:

Visual Basic

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "CCSMenu"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
  15. Attribute VB_Ext_KEY = "Collection" ,"ClsSMenu"
  16. Attribute VB_Ext_KEY = "Member0" ,"ClsSMenu"
  17. Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
  18. Option Explicit
  19. Public HMenu&
  20. '局部变量,保存集合
  21. Private mCol As Collection
  22. Public Function Add(Optional sKey As String) As ClsSMenu
  23.     '创建新对象
  24.     Dim objNewMember As ClsSMenu
  25.     Set objNewMember = New ClsSMenu
  26.     
  27.     '设置传入方法的属性
  28.     If Len(sKey) = 0 Then
  29.         mCol.Add objNewMember
  30.     Else
  31.         mCol.Add objNewMember, sKey
  32.     End If
  33.     
  34.     '返回已创建的对象
  35.     Set Add = objNewMember
  36.     Set objNewMember = Nothing
  37.     
  38. End Function
  39. Public Property Get item(vntIndexKey As Variant) As ClsSMenu
  40. Attribute item.VB_UserMemId = 0
  41.     '引用集合中的一个元素时使用。
  42.     'vntIndexKey 包含集合的索引或关键字,
  43.     '这是为什么要声明为 Variant 的原因
  44.     '语法:Set foo = x.Item(xyz) or Set foo = x.Item(5)
  45.     Set item = mCol(vntIndexKey)
  46. End Property
  47. Public Property Get Count() As Long
  48.     '检索集合中的元素数时使用。语法:Debug.Print x.Count
  49.     Count = mCol.Count
  50. End Property
  51. Public Sub Remove(vntIndexKey As Variant)
  52.     '删除集合中的元素时使用。
  53.     'vntIndexKey 包含索引或关键字,这是为什么要声明为 Variant 的原因
  54.     '语法:x.Remove(xyz)
  55.     mCol.Remove vntIndexKey
  56. End Sub
  57. Public Property Get NewEnum() As IUnknown
  58. Attribute NewEnum.VB_UserMemId = -4
  59. Attribute NewEnum.VB_MemberFlags = "40"
  60.     '本属性允许用 For...Each 语法枚举该集合。
  61.     Set NewEnum = mCol.[_NewEnum]
  62. End Property
  63. Private Sub Class_Initialize()
  64.     '创建类后创建集合
  65.     Set mCol = New Collection
  66. End Sub
  67. Private Sub Class_Terminate()
  68.     '类终止后破坏集合
  69.     Set mCol = Nothing
  70. End Sub
  71. Public Sub Clear()
  72.     Dim i As Long
  73.     
  74.     For i = 1 To mCol.Count
  75.         mCol.Remove 1
  76.     Next i
  77.     
  78. End Sub