StringReplace nutzt intern blöder Weise einen PChar-Pos, welches bei 0 endet und ignoriert die Längenangabe des Strings.
Also For+Delete oder das Schnellere von
Win32.API oder eine PChar-Variante, welche auf die Längenangabe und nicht auf ein #0 hört.