Solved

Richedit colors

Posted on 1998-06-19
4
245 Views
Last Modified: 2013-11-22
Hi i want to be able to insert text lines into a richeditbox from my code, the special thing: i want to put colors in it. with some kind of color codes.

eg: me.editbox.addline "@RED@this is red@BLUE@this is blue"

Can anyone help me ?

Best regards,
Arijan
0
Comment
Question by:aluiken
  • 2
4 Comments
 
LVL 1

Expert Comment

by:wford
ID: 1463763
You could use seltext and selcolor and selstart like so,

With RichTextBox1
    .Text = "First line in standard" & Chr(10)
    'get insert position
    .SelStart = Len(.Text)
    'set the new color
    .SelColor = vbRed
    'insert the line
    .SelText = "new line in red" & Chr(10)
    'find the end of 1st line
     .SelStart = Len(.Text)
    .SelColor = vbBlack
    .seltext = "I'm back to black"
End With

This can be a little limiting, but is quick and easy,Or you could edit the RTF code itself to insert a line in red, but this is not as simple as the method above. If you would rather the RTF answer, reject the one above and i'll dig out that that code.
0
 
LVL 1

Author Comment

by:aluiken
ID: 1463764
Hi, yes i think that the rtf sollution would be much faster and stable, if you dig out the code could you also think about the other color tags for me ? that is the problem where i am stuck at. (my own color codes @RED@ or somthing line that), Because i want to write a sub that adds a line to an richedit.

Thx !
0
 
LVL 18

Accepted Solution

by:
deighton earned 100 total points
ID: 1463765
EXAMPLE CALL

Private Sub Command1_Click()
    Dim sfStr As String
   
    sfStr = "@GREEN@Argentina@RED@England@GREEN@Brazil"
   
    Call AddText(RichTextBox1, sfStr)
   
End Sub


Sub I have written - I had a lot of problems getting things to work!

Sub AddText(rtb As RichTextBox, sfStr As String)

    'Fills a text box with coloured text

    Dim c As Integer
    Dim idColor As Long
    Dim sColor As String
    Dim a(500) As Long
    Dim i As Integer
   
    idColor = vbBlack
   
    rtb.SetFocus
   
    c = 1
    Do Until c > Len(sfStr)
       
        'Get the color code
        If Mid(sfStr, c, 1) = "@" Then
           
           
            c = c + 1
            sColor = ""
           
            Do Until c > Len(sfStr) Or Mid(sfStr, c, 1) = "@"
           
                sColor = sColor + Mid(sfStr, c, 1)
                c = c + 1
           
            Loop
           
            'Add all your colors here with their codes by adding more if statements
            'You might want to use CASE statement here
             
            If sColor = "RED" Then
                idColor = vbRed
            ElseIf sColor = "BLUE" Then
                idColor = vbBlue
            ElseIf sColor = "GREEN" Then
                idColor = vbGreen
            End If
           
        Else
       
            rtb.Text = rtb.Text + Mid(sfStr, c, 1)
            i = i + 1
            a(i) = idColor

           
        End If

       
        c = c + 1
       
    Loop
   
   
    'Set the colors - This is the only way I couold find that actually worked
    For c = 1 To i
        rtb.SelStart = (c - 1)
        rtb.SelLength = 1
        rtb.SelColor = a(c)
    Next
   
End Sub



0
 
LVL 1

Author Comment

by:aluiken
ID: 1463766
Perfect THX !
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction While answering a recent question (http://www.experts-exchange.com/Q_27402310.html) in the VB classic zone, I wrote some VB code in the (Office) VBA environment, rather than fire up my older PC.  I didn't post completely correct code o…
Have you ever wanted to restrict the users input in a textbox to numbers, and while doing that make sure that they can't 'cheat' by pasting in non-numeric text? Of course you can do that with code you write yourself but it's tedious and error-prone …
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…

920 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now