RTF-Text einfärben

02/02/2008 - 12:54 von Jürgen Schmitt | Report spam
Hallo,
möchte einen String an ein RTF-Text anhàngen und diesen unterschiedlich
einfàrben. Das funktioniert bis zum Zeilenumbruch.
Beispiel:
Allgemeiner Teil:
dim rgbColour(1 to 3) 'Farbe RTF-Text

Private Sub Command1_Click()
Dim text_string As String 'RTF-Text der eingefügt wird
text_string = "Test"
For i = 1 To 4
Select Case i
Case 1
rgbColour(1) = 255: rgbColour(2) = 0: rgbColour(3) = 0:
'Farbe rot
Case 2
rgbColour(1) = 0: rgbColour(2) = 255: rgbColour(3) = 0:
'Farbe grün
Case 3
rgbColour(1) = 0: rgbColour(2) = 0: rgbColour(3) = 255:
'Farbe blau
Case 4
Stop
rgbColour(1) = 0: rgbColour(2) = 0: rgbColour(3) = 0:
'Farbe schwarz
End Select
AddText RichTextBox1, text_string
Next
End Sub

Private Sub AddText(ByRef RTFBox As RichTextBox, ByVal strText As String)
Dim txtLength As Integer 'Textlànge RTFBox
txtLength = Len(RTFBox.Text) 'SelStart-Pos retten
RTFBox.SelStart = Len(RTFBox.Text)
RTFBox.SelText = strText 'text einfügen, Selstart-Pos hat sich
geàndert
RTFBox.SelStart = txtLength
RTFBox.SelLength = Len(RTFBox.Text) 'Len(text_string)
RTFBox.SelColor = RGB(rgbColour(1), rgbColour(2), rgbColour(3))
RTFBox.SelStart = Len(RTFBox.Text) 'neue start-pos hinter den text
'Hier ist der Text korrekt eingefàrbt, Zeile 1 = rot, Zeile 2 = grün
RTFBox.Text = RTFBox.Text & Chr(13) & Chr(10) 'Nach Zeilenumbruch
(ab 2. Durchlauf) nimmt die Farbe der aktuellen Zeile den RGB-Wert der
1. Zeile , also rot, müsste jedoch grün sein
End Sub

Nach der Anweisung
RTFBox.Text = RTFBox.Text & Chr(13) & Chr(10)
übernehmen sàmtliche Textzeilen den Farbwert des 1. Schleifendurchlaufes.
RTFBox.Text = RTFBox.Text & vbCrLf
bringt auch nichts.
Weiss nicht, was ich da falsch mache.
Vielen Dank für eure Hilfe
gruss
 

Lesen sie die antworten

#1 Gert Wietzorek
02/02/2008 - 13:30 | Warnen spam
Jürgen Schmitt schrieb:
Hallo,
möchte einen String an ein RTF-Text anhàngen und diesen unterschiedlich
einfàrben. Das funktioniert bis zum Zeilenumbruch.

'Hier ist der Text korrekt eingefàrbt, Zeile 1 = rot, Zeile 2 = grün
RTFBox.Text = RTFBox.Text & Chr(13) & Chr(10) 'Nach Zeilenumbruch
(ab 2. Durchlauf) nimmt die Farbe der aktuellen Zeile den RGB-Wert der
1. Zeile , also rot, müsste jedoch grün sein



Nimm statt dessen

RTFBox.Seltext=vbcrlf

dann sollte es funktionieren

Gruß

Gert




| Antworten nur in die Newsgroup, |
| die E-Mail Adressen existieren nicht! |
| |
| answers and questions only to the newsgroup,|
| the email adresses are not valid |
| |
| http://www.gwsoftware.de |

Ähnliche fragen