Der Code funktioniert in Delphi mit normalen AnsiStrings eventuell nicht.
Und das erkennt man eben daran:
Denn ein einzelnes Zeichen kann in Delphi keinen Wert größer 255 haben. Allerdings kann es auch sein das ein normaler String doch geht, denn beim Überlauf passiert genau das gleiche. Denn wenn auf 255 beispielsweise 2 addiert werden kommt 257 raus was bei einem Überlauf eine 1 wäre.
Und das gibt eben das gleiche wie 257 - 256.
Wenn man das ganze also mit einem älteren Delphi macht sollte es ohne diese Prüfung funktionieren. Verwendet man jedoch eine Version wo ein Zeichen einen Wert größer 255 annehmen kann (
unicode zum Beispiel) so muss eben die Korrektur manuell gemacht werden. Es wäre also interessant zu wissen welche Delphiversion verwendet wird (wurde im Profil ja leider nicht angegeben).