Hi,
das Ganze machst du am besten im OnStatusChange des SynEdits:
Delphi-Quellcode:
procedure TForm1.SynEdit1StatusChange(Sender: TObject; Changes: TSynStatusChanges);
begin
//Überprüfung oder das Caret wirklich geändert wurde.
if (Changes*[scAll, scCaretX, scCaretY]<>[]) then
begin
//Schreibe CaretX und CaretY sonstwo hin
end;
end;