Sowas geht nativ eben nur mit Pointern, welche über eine Pointer-Arithmetik verfügen.
Und das sind vorwiegend Array-Pointer (Pointer auf statische Arrays), wie PByte,
sowie PAnsiChar, PWideChar und Co oder eben Pointer auf einfache Typen, wie Byte, Word, Integer und Co.
Von Spielereien mit Pointern auf komplexere Typen, wie String, Interface oder dynamische Arrays, welche mit einem Haufen an Compilermagic und Automatiken vollgestopft sind, würde ich eher abraten.
aber ich hab soeben eine andere Lösung gefunden die sogar einfacher ist.
Und verraten wird sowas nicht?
Stell dir mal vor irgendwann hat jemand anderes auch dieses Problem.