Bevor ich den eigentlichen Beitrag abgesendet habe, hab ich brav nochmal alles gecheckt und das Thema hat sich quasi selbst erledigt.
Um eventuellen Nachfolgern zu helfen:
Wenn man ein TMemo, TEdit was auch immer mit einem Caret ableitet/überschreibt, bedenke:
Das Objekt hat ggf. auch eine SetCaret Funktion, die nun nicht den Caret Pixelgenau verschiebt, sondern in Zeile und Spalte des Textes.
Das tatsächliche platzieren Pixelgenau geht mit Windows.SetCaretPos(x, y).
Somit sollte man vorsichtshalber und vollständigkeitshalber um Verwirrungen zu Vermeiden immer mit
Delphi-Quellcode:
Self.SetCaretPos(Point(X, Y)); // für Spalte, Zeile
Windows.SetCaretPos(X, Y); // für Pixel X Y
arbeiten.
Hier ist auch zu sehen, dass das TCustomMemo ein TPoint erwartet, Windows aber X und Y direkt.
Das wollt ich nur mal gesagt haben.