![]() |
Richmemo Textposition einer Zeile ermitteln.
Wie ist es möglich bei einem Richmemo (oder Memo allgemein) die Posistion zu finden, an der eine über den Index bekannte Zeile (Lines[i]) beginnt?
Ich habe möchte bestimmte Zeilen mit SetRangeColor einfärben, jedoch wird dafür die Position im Text benötigt.
Delphi-Quellcode:
procedure SetRangeColor(TextStart, TextLength: Integer; FontColor: TColor);
Ich habe es mit folgendem versucht, jedoch gibt es dort Probleme bei identischen Zeilen, wo immer die Position der ersten passenden Zeile zurückgegeben wird:
Delphi-Quellcode:
function RichMemoLineToTextPos(RichMemo: TRichMemo; Line: Int64): Int64;
begin result := pos(RichMemo.Lines[Line],RichMemo.Text)-1; end; |
AW: Richmemo Textposition einer Zeile ermitteln.
EM_LINEINDEX / EM_LINEFROMCHAR
![]() Über RichMemo.Text und RichMemo.Lines.Text darfst du niemals etwas suchen, denn LineBreak im RichEditControl ist #13, aber Delphi konvertiert das zu sLineBreak (#13#10), womit die Char-Indize nicht mehr stimmen. (z.B. auch beim SelStart) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz