Hallo Orhan,
bei Multiline Edit Controls gibt es eine Besonderheit: du musst über den Zeilentrenner sLineBreak (#13#10) hinweg springen, mitten hinein funktioniert nicht.
Delphi-Quellcode:
function TDemoForm.MoveCaret(e: TRichEdit; forth: Boolean): Boolean;
var
iPos, iDelta: Integer;
begin
with e do
begin
iDelta := Ord(forth) shl 1 - 1;
iPos := SelStart + iDelta;
SelStart := iPos;
// Sonderbehandlung von Multiline Edit Controls
// nur bei forth = True notwendig
if iPos <> SelStart then
begin
iPos := SelStart + iDelta shl 1;
SelStart := iPos;
end;
if forth
then Result := iPos < Length(Text)
else Result := iPos > 0;
self.Caption := Format('caret pos %d', [iPos]);
end;
end;
Grüße vom marabu