Bei einem so strengen Typing wie in Pascal kommt man ohne untpyisierte Pointer aber leider nicht aus, so z.B. bei HAFs Problem:
Delphi-Quellcode:
r := Byte(Pointer(@s[1])^);
g := Byte(Pointer(@s[2])^);
b := Byte(Pointer(@s[3])^);
Also, HAF: Erst dereferenzieren, dann datentypunanbhängig machen, referenzieren und zu Byte casten.
Speziell für dieses Problem wäre aber viel sinnvoller:
Delphi-Quellcode:
r := Ord(s[1]);
g := Ord(s[2]);
b := Ord(s[3]);
Ich nehme aber an, dass Ord() intern so gelöst ist, wie ich das im ersten Codebeispiel gezeigt habe (vielleicht ist es aber auch uner Verwendung des Inline-Assemblers gemacht worden).