Después de mucho buscar salió la solución.
Situar el caret de un RichEdit en la posición del cursor del mouse al hacer click con el buton derecho.
Código Delphi
[-]
procedure TJrRichEditDic.MouseDown(sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
len: Integer;
p: Integer;
pt: TPoint;
begin
pt := Point(X, Y);
case Button of
mbLeft: begin
end;
mbRight: begin
if Length(Text) <> 0 then begin
len := SendMessage(Handle, WM_GETTEXTLENGTH, 0, 0);
p := Perform(Messages.EM_CHARFROMPOS, 0, Integer(@pt));
SendMessage(Handle, EM_SETSEL, p, p);
end;
end;
end;
end;