Du fügst mit InsertControl das Ding ja auch nicht in den Text ein sondern erzeugst nur ein Unterfenster zu dem RichEdit, ähnlich wie wenn du ein Element auf einem Panel ablegst. Das RichEdit weiß ja nichts von dem Control bzw. hat keinen Code, das zu behandeln.
Willst du es wirklich so machen wie du schreibst, dann versuche es so:
1. Die Zeichenposition, die du nach FindText mit SelStart auslesen kannst, solltest du dir merken (z.B. in TJvGifAnimator.Tag). Dann kannst du so den TJvGifAnimator an die richtige Position schieben.
Delphi-Quellcode:
with RichEdit.GetCharPos(Animator.Tag) do
begin
Animator.x := x;
Animator.y := y;
end;
2. Die Position solltest du bei den beiden Ereignissen OnHorizontalScroll und OnVerticalScroll des RichEdit neu setzen - für alle erzeugten Elemente (RichEdit.Controls).
Das hilft dir aber nicht viel wenn der Text oberhalb der Stelle bearbeitet wird, also wenn z.B. jemand dort eine neue Zeile einfügt - dann stimmt nämlich die gemerkte Position nicht mehr.