home *** CD-ROM | disk | FTP | other *** search
/ PC World 1997 November / PCWorld_1997-11_cd.bin / software / programy / komix / DATA.Z / ClassSet.cls < prev    next >
Text File  |  1997-02-27  |  2KB  |  80 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4. END
  5. Attribute VB_Name = "ClassSet"
  6. Attribute VB_GlobalNameSpace = False
  7. Attribute VB_Creatable = False
  8. Attribute VB_PredeclaredId = False
  9. Attribute VB_Exposed = False
  10. Option Explicit
  11.  
  12. Private contents As New Collection
  13. Private quals    As New Collection
  14.  
  15. Public Property Get Count() As Integer
  16.         Count = contents.Count
  17. End Property
  18.  
  19. Public Function item(index As Variant) As Object
  20.         Set item = contents.item(index)
  21. End Function
  22.  
  23. Public Function key(index As Variant) As Variant
  24.         Set key = quals.item(index)
  25. End Function
  26.  
  27. Public Sub Add(obj As Object, Optional key As Variant)
  28.         If IsMissing(key) Then
  29.                 contents.Add obj
  30.                 quals.Add "Nokey"
  31.         Else
  32.                 contents.Add obj, key
  33.                 quals.Add key
  34.         End If
  35. End Sub
  36.  
  37. Public Sub Remove(item As Object)
  38.         Dim ii As Integer
  39.         For ii = 1 To contents.Count
  40.                If item Is contents.item(ii) Then
  41.                       contents.Remove (ii)
  42.                       quals.Remove (ii)
  43.                       Exit Sub
  44.                End If
  45.         Next ii
  46. End Sub
  47.  
  48. Public Sub RemoveUsingKey(key As Variant)
  49.         Dim ii As Integer
  50.         For ii = 1 To quals.Count
  51.                If key = quals.item(ii) Then
  52.                       contents.Remove (ii)
  53.                       quals.Remove (ii)
  54.                       Exit Sub
  55.                End If
  56.         Next ii
  57. End Sub
  58.                 
  59. Public Function Contains(item As Object) As Boolean
  60.         Dim ii As Integer
  61.         For ii = 1 To contents.Count
  62.               If item Is contents.item(ii) Then
  63.                       Contains = True
  64.                       Exit Function
  65.               End If
  66.         Next ii
  67.         Contains = False
  68. End Function
  69.  
  70. Public Function ContainsKey(key As Variant) As Boolean
  71.         Dim ii As Integer
  72.         For ii = 1 To quals.Count
  73.               If key = quals.item(ii) Then
  74.                       ContainsKey = True
  75.                       Exit Function
  76.               End If
  77.         Next ii
  78.         ContainsKey = False
  79. End Function
  80.