Einzelnen Beitrag anzeigen

sk0r

Registriert seit: 1. Mai 2007
181 Beiträge
 
Delphi 7 Enterprise
 
#1

RichEdit Format zerstört wegen Zeilenumbruch

  Alt 2. Nov 2012, 18:22
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

Geändert von sk0r ( 2. Nov 2012 um 18:24 Uhr)
  Mit Zitat antworten Zitat