Als ich in dem richmemo Beispiel das nextSylerange-event ergänzte durch
Code: Alles auswählen
procedure Tforichmemotest.btnextstylerangeClick(Sender: TObject);
begin RichMemo.GetStyleRange(RichMemo.SelStart, ofs, len );
..... etc...
Caption := richmemo1.seltext; // <--- neue Zeile im Beispiel Projekt !!!
end;
Nach einiger Zeit kam ich darauf, dass getseltext sich wohl an den #13#10 des Textes verschluckt !
Ich denke, dass das ein Bug ist.
Mit dem folgenden workaround geht es :
Code: Alles auswählen
function seltext_new(rimem : trichmemo) : string;
var i,len,
start : integer;
tx,
nthchar : string;
begin
tx := rimem.Text;
start := rimem.SelStart;
len := rimem.SelLength;
i := 0;
While i < start do
begin inc(i);
NthChar := UTF8Copy(tx,i, 1);
If (nthchar = #10)
then inc(start);
end;
While i < (start+len) do
begin inc(i);
NthChar := UTF8Copy(tx,i, 1);
If (nthchar = #10)
then inc(len);
end;
// ............................................
result := UTF8Copy(tx,start+1,len);
end;
2.Seht Ihr das auch als Bug an ?