Mal zu deiner ursprünglichen Frage. Ausgehend davon, dass
bufPtr ein Array of (
Ansi)Char ist, würde folgendes Funktionieren:
bufPtr[ix] := Char(StrToIntDef('$' + Copy(hexDump,1 + ix*2,2) ,0));
Sprich: Immer die rechte Seite in den Typ der linken Seite casten und nicht umgekehrt.
Alternativ sollte auch das funktionieren (ist aber unschön):
PByte(@bufPtr[ix])^ := StrToIntDef('$' + Copy(hexDump,1 + ix*2,2) ,0);
Dein Problem war aber vermutlich grade eher, dass du nicht berücksichtigt hattest, dass XE4 im Gegensatz zu D7 jetzt
Unicode (2Byte) Chars verwendet.