Hai,
ich habe folgendes Problem:
Ich möchte den Text in meinem RichEdit (TJvRichEdit) zu Teilen Fett formatieren. Das funktioniert soweit auch ganz gut.
Das Problem ist, dass wenn das RichEdit einen automatischen Zeilenumbruch INNERHALB des Text Lines (aufgrund der Tatsache,
dass keine horizontale Scrollbar existiert, darf auch nicht!), dann geht meine komplette Formatierung der nächsten Zeile drauf.
Ich setze die Formatierung nachdem ich eine neue Zeile mit Lines.Add() hinzugefügt habe:
Delphi-Quellcode:
procedure reBoldLine(coRichEdit: TJvRichEdit; iRow: Integer; iExcludeLen: Integer; bItalic: Boolean);
begin
with coRichEdit do
begin
SelStart := Perform(EM_LINEINDEX, iRow, 0);
SelLength := Length(Lines[iRow]) - iExcludeLen - 1;
if bItalic then
SelAttributes.Style := [fsBold, fsItalic]
else
SelAttributes.Style := [fsBold];
SelLength := 0;
end;
end;
...
gChanArr[g].JvRichEdit1.Lines.Add(strTimeAndName + ' ' + strChatText);
reBoldLine(gChanArr[g].JvRichEdit1, gChanArr[g].JvRichEdit1.Lines.Count - 1, length(strChatText), false);
Zur Veranschaulichung ein Bild:
http://www.abload.de/img/delphi_logical_errors4jpd.png
Wie man sieht, ist die Zeile mit den langen a's nicht wie gedacht.
Wie ist dies änderbar?
Über Hilfe würde ich mich freuen.
LG: sk0r