Ich denke, du machst nichts falsch! Meines Wissens nach, werden die einzelnen Bytes einer Integer-Variable derart gespeichert, dass das höchstwertigste Byte als letztes kommt. (Bei einem Dezimal-Wert z.B. 10356 würde das dann so aussehen: 65301).
Versuch mal:
Delphi-Quellcode:
var
Wert: Longword;
[...]
Wert:=((Wert and $FF000000) ShR 24)+((Wert and $00FF0000) ShR 8)+((Wert and $0000FF00) ShL 8)+((Wert and $000000FF) ShL 24);
//Edit: Oops, zu langsam! Naja - trotzdem!