Hallo Carsten1234,
InttoHex(zahl,4) liefert bei -5 FFFFFFFB und bei 5 0005. Da hat wohl jemand etwas geschlampt. Für Dich heißt das einfach, die ersten 4 Buchstaben zu löschen wenn Dein String länger als 4 ist.
Oder Du arbeitest mit InttoHex(zahl,8) dan haben positive und negative Werte das gleiche Format. Auch wenn
Delphi-Quellcode:
var
zahl:smallint; //16Bit
ist.
Ausserdem ist Dein Hi/Lo-Problem mit erschlagen.
Irgendwie bezweifele ich, daß chr(hi(zahl)) einen Hexwert ergibt.
Gruß