home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 3_2004-2005.ISO / Data / Zips / Ulli's_Cod1877074152005.psc / cStack.cls < prev    next >
Text File  |  2005-04-15  |  2KB  |  72 lines

  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 = "cStack"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = False
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. Option Explicit
  15. DefLng A-Z 'we're 32 bit
  16.  
  17. 'stack to keep track of the treeview nodes
  18. Private NodeStack() As MSComctlLib.Node
  19. Private Index       As Long
  20. Private Capacity    As Long
  21.  
  22. Private Sub Class_Initialize()
  23.  
  24.     Reset 5
  25.  
  26. End Sub
  27.  
  28. Private Sub Class_Terminate()
  29.  
  30.     Reset 0
  31.  
  32. End Sub
  33.  
  34. Public Function Pop() As MSComctlLib.Node
  35.  
  36.     If Index Then
  37.         Dec Index
  38.         Set Pop = NodeStack(Index)
  39.       Else 'INDEX = FALSE/0
  40.         Set Pop = Nothing
  41.     End If
  42.  
  43. End Function
  44.  
  45. Public Sub Push(NodeToPush As MSComctlLib.Node)
  46.  
  47.     If Index > Capacity Then
  48.         ReDim Preserve NodeStack(Index + 5)
  49.         Capacity = Index + 5
  50.     End If
  51.     Set NodeStack(Index) = NodeToPush
  52.     Inc Index
  53.  
  54. End Sub
  55.  
  56. Public Sub Reset(Cap As Long)
  57.  
  58.     Index = 0
  59.     ReDim NodeStack(Cap)
  60.     Capacity = Cap
  61.  
  62. End Sub
  63.  
  64. Public Static Property Get StackSize() As Long
  65.  
  66.     StackSize = Index
  67.  
  68. End Property
  69.  
  70. ':) Ulli's VB Code Formatter V2.19.3 (2005-Apr-15 18:53)  Decl: 7  Code: 51  Total: 58 Lines
  71. ':) CommentOnly: 1 (1,7%)  Commented: 2 (3,4%)  Empty: 19 (32,8%)  Max Logic Depth: 2
  72.