Problem könnte sein, dass es zwar RawByteString gibt, aber kein RawByteChar. Man kann es auch nicht analog mit Codepage $FFFF deklarieren. Jetzt könnte man sich fragen, was
rbs: RawByteString[4]
wäre und was konvertiert wird, wenn man
Stream.Read(rbs[1], 4);
aufruft.
Außerdem kann man sich fragen, was passiert wenn man
const Header: RawByteString = '‰PNG';
deklariert.
Und die beiden Geschichten kann man jetzt noch mit den beiden Zuständen der
HIGHCHARUNICODE-Direktive probieren.
Mich wundert übrigens, dass
Stream.Read(name, 4);
geht und das nicht
Stream.Read(name[0], 4);
heißen muss. Aber gut, das wäre einem anders um die Ohren geflogen.