Hallo, herzlich willkommen!
Ich würde das mit
Memo1.SelStart := Memo1.SelStart - x;
lösen. In eine (schlechte) Prozedur gefasst, könnte das so aussehen (der Cursor wird von hiter dem tag, zwischen die Tags gesetzt). Habe das nur schnell hingeschlampert, sorry, kannst du ja selbst optimieren und verfeinern:
Delphi-Quellcode:
procedure set_memo_cur(Memo: TMemo);
var
i: Integer;
Temp: string;
begin
Temp := Memo.Lines[Memo.CaretPos.Y];
if Length(Temp) > 0 then
begin
for i := Memo.SelStart downto 2 do
begin
if (Temp[i] = '<') and (Temp[i - 1] = '>') then
begin
Memo.SelStart := Memo.SelStart - i;
Memo.SetFocus;
break;
end;
end;
end;
end;
Aufruf:
set_memo_cur(Memo1);
Sieht der Memo-Text allerdings so aus, geht das nicht
Zitat:
Geht es um einen
HTML-Editor, würde ich dir allerdings zum SynEdit raten, da kannst du direkt auf
CaretX und
CaretY zugreifen und hast gleichzeitig die ganzen Highlighter, damit der Code leserlich wird.