Public Function Add(AreaNumber As Long, AreaBrush As Long, AreaAlertBrush As Long, AreaPen As Long, AreaName As String, AreaNormalColor As Long, AreaMouseColor As Long, AreaSelected As Boolean, AreaState As Long, AreaComments As String, AreaStyle As Long, AreaType As String, Optional sKey As String) As Area
'create a new object
Dim objNewMember As Area
Set objNewMember = New Area
'set the properties passed into the method
objNewMember.AreaNumber = AreaNumber
objNewMember.AreaBrush = AreaBrush
objNewMember.AreaAlertBrush = AreaAlertBrush
objNewMember.AreaPen = AreaPen
objNewMember.AreaName = AreaName
objNewMember.AreaNormalColor = AreaNormalColor
objNewMember.AreaMouseColor = AreaMouseColor
objNewMember.AreaSelected = AreaSelected
objNewMember.AreaState = AreaState
objNewMember.AreaComments = AreaComments
objNewMember.AreaStyle = AreaStyle
objNewMember.AreaType = AreaType
mCol.Add objNewMember
'return the object created
Set Add = objNewMember
Set objNewMember = Nothing
End Function
Public Property Get Item(vntIndexKey As Variant) As Area
Attribute Item.VB_UserMemId = 0
'used when referencing an element in the collection
'vntIndexKey contains either the Index or Key to the collection,
'this is why it is declared as a Variant
'Syntax: Set foo = x.Item(xyz) or Set foo = x.Item(5)
'Debug.Print vntIndexKey
Set Item = mCol(vntIndexKey)
End Property
Public Property Get Count() As Long
'used when retrieving the number of elements in the
'collection. Syntax: Debug.Print x.Count
Count = mCol.Count
End Property
Public Sub Remove(vntIndexKey As Variant)
'used when removing an element from the collection
'vntIndexKey contains either the Index or Key, which is why
'it is declared as a Variant
'Syntax: x.Remove(xyz)
mCol.Remove vntIndexKey
End Sub
Public Property Get NewEnum() As IUnknown
Attribute NewEnum.VB_UserMemId = -4
Attribute NewEnum.VB_MemberFlags = "40"
'this property allows you to enumerate
'this collection with the For...Each syntax
Set NewEnum = mCol.[_NewEnum]
End Property
Private Sub Class_Initialize()
'creates the collection when this class is created
Set mCol = New Collection
End Sub
Private Sub Class_Terminate()
'destroys collection when this class is terminated