home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 3_2004-2005.ISO / Data / Zips / ListViewEd1747365192004.psc / ColHeader.cls < prev    next >
Text File  |  2004-05-19  |  4KB  |  116 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 = "ColHeader"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. Option Explicit
  15.  
  16. Private m_strText As String
  17. Private m_strKey As String
  18. Private m_sngWidth As Single
  19. Private m_enAlignment As ListColumnAlignmentConstants
  20. Private m_enDataType As eListColumnDataType
  21.  
  22. Private Function Between( _
  23.                         ByVal Source As String, _
  24.                         ByVal FirstTarget As String, _
  25.                         ByVal SecondTarget As String, _
  26.                         Optional ByVal Compare As VbCompareMethod = VbCompareMethod.vbTextCompare, _
  27.                         Optional FirstTarget_StartPos As Long, _
  28.                         Optional SecondTarget_EndPos As Long, _
  29.                         Optional ByVal bReturnWholeTextIfNotFound As Boolean) As String
  30.  
  31. 'Returns the text between the two targets.
  32.  
  33.    On Error GoTo Err_Handler
  34.  
  35.    FirstTarget_StartPos = InStr(1, Source, FirstTarget, Compare)
  36.    If FirstTarget_StartPos > 0 Then
  37.       SecondTarget_EndPos = VBA.InStr(FirstTarget_StartPos + Len(FirstTarget), _
  38.                             Source, SecondTarget, Compare)
  39.       If SecondTarget_EndPos > 0 Then
  40.          SecondTarget_EndPos = SecondTarget_EndPos + Len(SecondTarget) - 1
  41.          'Source = After(Source, FirstTarget, Compare)
  42.          Source = VBA.Mid$(Source, VBA.InStr(1, Source, FirstTarget, Compare) + Len(FirstTarget))
  43.          'Between = Before(Source, SecondTarget, Compare)
  44.          Between = VBA.Left$(Source, VBA.InStr(1, Source, SecondTarget, Compare) - 1)
  45.       Else 'NOT SECONDTARGET_ENDPOS...
  46.          If bReturnWholeTextIfNotFound Then
  47.             Between = Source
  48.          End If
  49.       End If
  50.    Else 'NOT FIRSTTARGET_STARTPOS...
  51.       If bReturnWholeTextIfNotFound Then
  52.          Between = Source
  53.       End If
  54.    End If
  55. Exit Function
  56.  
  57. Err_Handler:
  58. End Function
  59.  
  60. Public Property Get Text() As String
  61. Attribute Text.VB_UserMemId = 0
  62.    Text = m_strText
  63. End Property
  64. Public Property Let Text(ByVal strText As String)
  65.    m_strText = strText
  66. End Property
  67.  
  68. Public Property Get Key() As String
  69.    Key = m_strKey
  70. End Property
  71. Public Property Let Key(ByVal strKey As String)
  72.    m_strKey = strKey
  73. End Property
  74.  
  75. Public Property Get Width() As Single
  76.    Width = m_sngWidth
  77. End Property
  78. Public Property Let Width(ByVal sngWidth As Single)
  79.    m_sngWidth = sngWidth
  80. End Property
  81.  
  82. Public Property Get Alignment() As ListColumnAlignmentConstants
  83.    Alignment = m_enAlignment
  84. End Property
  85. Public Property Let Alignment(ByVal enAlignment As ListColumnAlignmentConstants)
  86.    m_enAlignment = enAlignment
  87. End Property
  88.  
  89. Public Property Get DataType() As eListColumnDataType
  90.    DataType = m_enDataType
  91. End Property
  92. Public Property Let DataType(ByVal enDataType As eListColumnDataType)
  93.    m_enDataType = enDataType
  94. End Property
  95.  
  96. Public Function GetTagText(Optional Delimiter As String = "|") As String
  97.    Dim asText(0 To 4) As String
  98.    asText(0) = "Text=" & m_strText 'String
  99.    asText(1) = "Key=" & m_strKey 'String
  100.    asText(2) = "Width=" & m_sngWidth 'Single
  101.    asText(3) = "Alignment=" & m_enAlignment 'ListColumnAlignmentConstants
  102.    asText(4) = "DataType=" & m_enDataType 'eListColumnDataType
  103.    GetTagText = Delimiter & Join(asText, Delimiter) & Delimiter
  104. End Function
  105.  
  106. Public Sub SetPropsFromTagText(TagText As String, Optional Delimiter As String = "|")
  107.    '|Text=FullName|Key=|Width=1299.969|Alignment=0|DataType=0|Level=0|
  108.    m_strText = Between(TagText, Delimiter & "Text=", Delimiter)
  109.    m_strKey = Between(TagText, Delimiter & "Key=", Delimiter)
  110.    m_sngWidth = Val(Between(TagText, Delimiter & "Width=", Delimiter))
  111.    m_enAlignment = Val(Between(TagText, Delimiter & "Alignment=", Delimiter))
  112.    m_enDataType = Val(Between(TagText, Delimiter & "DataType=", Delimiter))
  113. End Sub
  114.  
  115.  
  116.