Verwende auch mal Cardinal (LongWord) statt dem Integer (LongInt).
Dazu dann noch IntToStr und
StrToInt64, für die Umwandlung.
Bedenke, daß es 2147483648 im "Integer" nicht gibt.
Es funktioniert nur, da dieses zufällig (falls überhaupt) in einen Int64 umgewandelt wird.
Der Compiler verwendet selten Cardinal und versucht es öfters gegen Integer/Int64 zu casten.
Wärend $80000000 in einen Integer paßt, da bei der Hexadezimaldarstellung vom Compiler standardmäßig kein "-" erwartet wird und es somit in 32 Bit reinpaßt.