home *** CD-ROM | disk | FTP | other *** search
Visual Basic class definition | 1998-11-15 | 8.5 KB | 252 lines |
- VERSION 1.0 CLASS
- BEGIN
- MultiUse = -1 'True
- END
- Attribute VB_Name = "clsCellArray"
- Attribute VB_GlobalNameSpace = False
- Attribute VB_Creatable = True
- Attribute VB_PredeclaredId = False
- Attribute VB_Exposed = False
- Attribute VB_Ext_KEY = "SavedWithClassBuilder" ,"Yes"
- Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
- Private Type CellType
- Text As String
- FontName As String
- FontSize As Integer
- FontBold As Boolean
- FontItalic As Boolean
- FontUnderline As Boolean
- FontStrikethru As Boolean
- ' TextAlign As Byte
- TextAlignVertical As Byte
- BackColor As Long
- ForeColor As Long
- Style As Byte
- Value As Integer
- End Type
-
- Private Type RowType
- Cells() As CellType
- End Type
-
- Private colRows() As RowType
- Private lRows As Long
- Private lCols As Long
-
- Public Sub Remove(iRow As Integer)
- Dim rCnt As Integer, cCnt As Integer
- If Rows > 0 And iRow <= Rows Then
- For rCnt = iRow To Rows - 1
- For cCnt = 1 To Cols
- colRows(rCnt).Cells(cCnt).Text = colRows(rCnt + 1).Cells(cCnt).Text
- Next
- Next
- End If
- End Sub
-
- Public Property Let FontStrikethru(lCol As Long, lRow As Long, ByVal vData As Boolean)
- 'used when assigning a value to the property, on the left side of an assignment.
- 'Syntax: X.FontStrikethru = 5
- colRows(lRow).Cells(lCol).FontStrikethru = vData
- End Property
-
- Public Property Get FontStrikethru(lCol As Long, lRow As Long) As Boolean
- 'used when retrieving value of a property, on the right side of an assignment.
- 'Syntax: Debug.Print X.FontStrikethru
- FontStrikethru = colRows(lRow).Cells(lCol).FontStrikethru
- End Property
-
- Public Property Let FontUnderline(lCol As Long, lRow As Long, ByVal vData As Boolean)
- 'used when assigning a value to the property, on the left side of an assignment.
- 'Syntax: X.FontUnderline = 5
- colRows(lRow).Cells(lCol).FontUnderline = vData
- End Property
-
- Public Property Get FontUnderline(lCol As Long, lRow As Long) As Boolean
- 'used when retrieving value of a property, on the right side of an assignment.
- 'Syntax: Debug.Print X.FontUnderline
- FontUnderline = colRows(lRow).Cells(lCol).FontUnderline
- End Property
-
- Public Property Let FontItalic(lCol As Long, lRow As Long, ByVal vData As Boolean)
- 'used when assigning a value to the property, on the left side of an assignment.
- 'Syntax: X.FontItalic = 5
- colRows(lRow).Cells(lCol).FontItalic = vData
- End Property
-
- Public Property Get FontItalic(lCol As Long, lRow As Long) As Boolean
- 'used when retrieving value of a property, on the right side of an assignment.
- 'Syntax: Debug.Print X.FontItalic
- FontItalic = colRows(lRow).Cells(lCol).FontItalic
- End Property
-
- Public Property Let FontBold(lCol As Long, lRow As Long, ByVal vData As Boolean)
- 'used when assigning a value to the property, on the left side of an assignment.
- 'Syntax: X.FontBold = 5
- colRows(lRow).Cells(lCol).FontBold = vData
- End Property
-
- Public Property Get FontBold(lCol As Long, lRow As Long) As Boolean
- 'used when retrieving value of a property, on the right side of an assignment.
- 'Syntax: Debug.Print X.FontBold
- FontBold = colRows(lRow).Cells(lCol).FontBold
- End Property
-
- Public Property Let FontSize(lCol As Long, lRow As Long, ByVal vData As Integer)
- 'used when assigning a value to the property, on the left side of an assignment.
- 'Syntax: X.FontSize = 5
- colRows(lRow).Cells(lCol).FontSize = vData
- End Property
-
- Public Property Get FontSize(lCol As Long, lRow As Long) As Integer
- 'used when retrieving value of a property, on the right side of an assignment.
- 'Syntax: Debug.Print X.FontSize
- FontSize = colRows(lRow).Cells(lCol).FontSize
- End Property
-
- Public Property Let FontName(lCol As Long, lRow As Long, ByVal vData As String)
- 'used when assigning a value to the property, on the left side of an assignment.
- 'Syntax: X.FontName = 5
- colRows(lRow).Cells(lCol).FontName = vData
- End Property
-
- Public Property Get FontName(lCol As Long, lRow As Long) As String
- 'used when retrieving value of a property, on the right side of an assignment.
- 'Syntax: Debug.Print X.FontName
- FontName = colRows(lRow).Cells(lCol).FontName
- End Property
-
- Public Property Get Rows() As Long
- Rows = lRows
- End Property
-
- Public Property Let Rows(ByVal lNewValue As Long)
- If lNewValue = lRows Then Exit Property
-
- ReDim Preserve colRows(0 To lNewValue) As RowType
- If lNewValue > lRows Then
- For y& = lRows + 1 To lNewValue
- ReDim Preserve colRows(y&).Cells(0 To lCols) As CellType
- For x& = 0 To lCols
- InitializeCell x&, y&
- Next
- Next
- End If
-
- lRows = lNewValue
- Set objCell = Nothing
- Set objRow = Nothing
- End Property
-
- Public Property Get Cols() As Long
- Cols = lCols
- End Property
-
- Public Property Let Cols(ByVal lNewValue As Long)
- If lNewValue = lCols Then Exit Property
-
- For y& = 0 To lRows
- 'If lNewValue > lCols Then
- ReDim Preserve colRows(y&).Cells(0 To lNewValue) As CellType
- For x& = lCols + 1 To lNewValue
- 'Add the new cells to this row
- 'colRows(Y&).Add objCell, CStr(X&)
-
- InitializeCell x&, y&
- Next
- Next
- lCols = lNewValue
- Set objCell = Nothing
- Set objRow = Nothing
- End Property
-
- Private Sub Class_Initialize()
- ReDim colRows(0 To 0) As RowType
- ReDim colRows(0).Cells(0 To 0) As CellType
- InitializeCell 0, 0
-
- lRows = 0
- lCols = 0
- End Sub
-
- Private Sub Class_Terminate()
- For y& = lRows To 0 Step -1
- Erase colRows(y&).Cells
- Next
- Erase colRows
- End Sub
-
- Public Property Get Text(lCol As Long, lRow As Long) As String
- Text = colRows(lRow).Cells(lCol).Text
- End Property
-
- Public Property Let Text(lCol As Long, lRow As Long, ByVal sNewValue As String)
- colRows(lRow).Cells(lCol).Text = sNewValue
- End Property
-
- Public Property Get Style(lCol As Long, lRow As Long) As Byte
- Style = colRows(lRow).Cells(lCol).Style
- End Property
-
- Public Property Let Style(lCol As Long, lRow As Long, ByVal bytNewValue As Byte)
- colRows(lRow).Cells(lCol).Style = bytNewValue
- End Property
-
- 'Public Property Get TextAlign(lCol As Long, lRow As Long) As Byte
- ' TextAlign = colRows(lRow).Cells(lCol).TextAlign
- 'End Property
- '
- 'Public Property Let TextAlign(lCol As Long, lRow As Long, ByVal bytNewValue As Byte)
- ' colRows(lRow).Cells(lCol).TextAlign = bytNewValue
- 'End Property
-
- Public Property Get TextAlignVertical(lCol As Long, lRow As Long) As Byte
- TextAlignVertical = colRows(lRow).Cells(lCol).TextAlignVertical
- End Property
-
- Public Property Let TextAlignVertical(lCol As Long, lRow As Long, ByVal bytNewValue As Byte)
- colRows(lRow).Cells(lCol).TextAlignVertical = bytNewValue
- End Property
-
- Public Property Get BackColor(lCol As Long, lRow As Long) As Long
- BackColor = colRows(lRow).Cells(lCol).BackColor
- End Property
-
- Public Property Let BackColor(lCol As Long, lRow As Long, ByVal lNewValue As Long)
- colRows(lRow).Cells(lCol).BackColor = lNewValue
- End Property
-
- Public Property Get ForeColor(lCol As Long, lRow As Long) As Long
- ForeColor = colRows(lRow).Cells(lCol).ForeColor
- End Property
-
- Public Property Let ForeColor(lCol As Long, lRow As Long, ByVal lNewValue As Long)
- colRows(lRow).Cells(lCol).ForeColor = lNewValue
- End Property
-
- Public Property Get Value(lCol As Long, lRow As Long) As Integer
- Value = colRows(lRow).Cells(lCol).Value
- End Property
-
- Public Property Let Value(lCol As Long, lRow As Long, ByVal iNewValue As Integer)
- colRows(lRow).Cells(lCol).Value = iNewValue
- End Property
-
- Private Sub InitializeCell(ByVal lCol As Long, ByVal lRow As Long)
- 'Format the new cell
- colRows(lRow).Cells(lCol).BackColor = -1 'vbwhite
- colRows(lRow).Cells(lCol).ForeColor = -1 'vbBlack
- 'Set colRows(lRow).Cells(lCol).Font = New StdFont
- colRows(lRow).Cells(lCol).FontName = "Arial"
- colRows(lRow).Cells(lCol).FontSize = 9
- If lRow = 0 Or lCol = 0 Then
- colRows(lRow).Cells(lCol).FontBold = True
- Else
- colRows(lRow).Cells(lCol).FontBold = False
- End If
- colRows(lRow).Cells(lCol).FontItalic = False
- colRows(lRow).Cells(lCol).FontUnderline = False
- colRows(lRow).Cells(lCol).FontStrikethru = False
- If lRow = 0 Or lCol = 0 Then colRows(lRow).Cells(lCol).FontBold = True
- End Sub
-