Hmmmm...
und wenn du einfach ein WM_LBUTTONDOWN, WM_LBUTTONUP mit den Koordinaten an das RichEdit-Control schickst? Dann sollte es den Eingabecursor doch so setzen, als wenn du an die Stelle mit der Maus geklickt hättest.
[Update]
Gibt eine bessere Methode, einen Moment...
Hier:
Delphi-Quellcode:
procedure SetRichEditCaret(RichEdit: TCustomRichEdit; X, Y: Integer);
var
pt: TPoint;
begin
pt.x := X;
pt.y := Y;
RichEdit.SelStart := SendMessage(RichEdit.Handle, EM_CHARFROMPOS, 0, Integer(@pt));
end;
Nicht ausprobiert!