[AccessD] Putting it all together

John Colby jwcolby at gmail.com
Mon Jul 18 20:55:16 CDT 2022


The following is my class which puts it all together.  The reason I do it
as a class is that I want to be able to create parts of a line in the text
box which are formatted differently, then store the pieces in a collection
in a form (or another supervisor class in my case) in order to build up as
large a message in the text box as I desire.

This class allows me to create an instance for each word, phrase or
sentence where a common set of formatting is applied to that string.  Then
string the strings together in the next level up code.

BTW one can just make the variables in the header public and get rid of the
properties.  I prefer properties but it makes the code less verbose if the
properties go away.

Thanks again Stuart for your contribution!  Much appreciated.


Option Compare Database
Option Explicit

Private mstrToFormat As String 'The string to be formatted
Private mstrFormatted As String 'The string after formatting is applied
'
'The rest of this is format stuff to apply to the string above
'
Private mblnCRLF As Boolean
Private mblnBold As Boolean
Private mblnItalics As Boolean
Private mblnUnderline As Boolean
Private mintSize As Integer
Private mstrColor As String
Private mstrFace As String
Private mintStatus As enumVBColors
Private mstrFormatName As String

Function fInit(strToFormat As String, _
                Optional blnCRLF As Boolean = False, _
                Optional blnBold As Boolean = False, _
                Optional blnItalics As Boolean = False, _
                Optional blnUnderline As Boolean = False, _
                Optional intSize As Integer = -1, _
                Optional strColor As String = "Black", _
                Optional strFace As String = "Arial", _
                Optional intStatus As enumVBColors = enumVBColors.Black)
    mstrToFormat = strToFormat
    mblnCRLF = blnCRLF
    mblnBold = blnBold
    mblnItalics = blnItalics
    mblnUnderline = blnUnderline
    mintSize = intSize
    mstrColor = strColor
    mstrFace = strFace
    mintStatus = intStatus

    FormatString
End Function

Public Property Get pFormatted() As String
    pFormatted = mstrFormatted
End Property
Public Property Let pFormatted(ByVal sNewValue As String)
    mstrFormatted = sNewValue
End Property
Public Property Get pFormatName() As String
    pFormatName = mstrFormatName
End Property
Public Property Let pFormatName(ByVal sNewValue As String)
    mstrFormatName = sNewValue
End Property
Public Property Get pBold() As Boolean
    pBold = mblnBold
End Property
Public Property Let pBold(ByVal bNewValue As Boolean)
    mblnBold = bNewValue
End Property
Public Property Get pCRLF() As Boolean
    pCRLF = mblnCRLF
End Property
Public Property Let pCRLF(ByVal bNewValue As Boolean)
    mblnCRLF = bNewValue
End Property
Public Property Get pItalics() As Boolean
    pItalics = mblnItalics
End Property
Public Property Let pItalics(ByVal bNewValue As Boolean)
    mblnItalics = bNewValue
End Property
Public Property Get pUnderline() As Boolean
    pUnderline = mblnUnderline
End Property
Public Property Let pUnderline(ByVal bNewValue As Boolean)
    mblnUnderline = bNewValue
End Property
Public Property Get pSize() As Integer
    pSize = mintSize
End Property
Public Property Let pSize(ByVal iNewValue As Integer)
    mintSize = iNewValue
End Property
Public Property Get pColor() As String
    pColor = mstrColor
End Property
Public Property Let pColor(ByVal sNewValue As String)
    mstrColor = sNewValue
End Property
Public Property Get pFace() As String
    pFace = mstrFace
End Property
Public Property Let pFace(ByVal sNewValue As String)
    mstrFace = sNewValue
End Property
Public Property Get pStatus() As Integer
    pStatus = mintStatus
End Property
Public Property Let pStatus(ByVal iNewValue As Integer)
    mintStatus = iNewValue
End Property

Function FormatString()
    mstrFormatted = mstrToFormat
    Dim mstrFormattedClosingFontTag As String
    Const strInteriorQuotes As String = """"
    If mintStatus > 0 Then
        mstrFormatted = "<Font Color=" & strInteriorQuotes &
HTMLColour(mintStatus) & strInteriorQuotes & ">" & mstrFormatted
        mstrFormattedClosingFontTag = mstrFormattedClosingFontTag &
"</Font>"
    Else
        mstrFormatted = "<Font Color=" & strInteriorQuotes & mstrColor &
strInteriorQuotes & ">" & mstrFormatted
        mstrFormattedClosingFontTag = mstrFormattedClosingFontTag &
"</Font>"
    End If
    '
    'Get the three font pieces grouped
    '
    If mstrFace <> "" Then
        mstrFormatted = "<Font Face=" & strInteriorQuotes & mstrFace &
strInteriorQuotes & ">" & mstrFormatted
        mstrFormattedClosingFontTag = mstrFormattedClosingFontTag &
"</Font>"
    End If
    If mintSize <> -1 Then
        mstrFormatted = "<Font Size=" & CStr(mintSize) & ">" & mstrFormatted
        mstrFormattedClosingFontTag = mstrFormattedClosingFontTag &
"</Font>"
    End If
    mstrFormatted = mstrFormatted & mstrFormattedClosingFontTag
    'mstrFormatted = mstrFormatted & mstrFormattedClosingFontTag
    If mblnBold Then
        mstrFormatted = "<b>" & mstrFormatted & "</b>"
    End If
    If mblnItalics Then
        mstrFormatted = "<i>" & mstrFormatted & "</i>"
    End If
    If mblnUnderline Then
        mstrFormatted = "<u>" & mstrFormatted & "</u>"
    End If
    If mblnCRLF Then
        'mstrFormatted = "<br>" & mstrFormatted
        mstrFormatted = mstrFormatted & "<br>"
    End If

End Function
Function HTMLColour(VBAColor As Long) As String
Dim BGR As String
    BGR = Right$("000000" & Hex$(VBAColor), 6)
    HTMLColour = "#" & Right$(BGR, 2) & Mid$(BGR, 3, 2) & Left$(BGR, 2)
End Function
'
'HTML programming uses RRGGBB notation
'VBA uses BBGGRR notation
'
Function VBAColour(VBAColor As Long) As String
    VBAColour = "#" & Right$("000000" & Hex$(VBAColor), 6)
End Function
Function fColor(intColor As enumVBColors) As String
    Select Case intColor
    Case enumVBColors.Black
        fColor = "Black"
    Case enumVBColors.Red
        fColor = "Red"
    Case enumVBColors.Green
        fColor = "Green"
    Case enumVBColors.Yellow
        fColor = "Yellow"
    Case enumVBColors.Blue
        fColor = "Blue"
    Case enumVBColors.Magenta
        fColor = "Magenta"
    Case enumVBColors.Cyan
        fColor = "Cyan"
    Case enumVBColors.White
        fColor = "White"
    End Select
End Function



-- 
John W. Colby
Colby Consulting


More information about the AccessD mailing list