Nie rozumiem przecież jak jest -1 do czy to Integer czy Variant to będzie -1
var
a: Variant;
b: Integer;
begin
a:= -1;
b:= a;
ShowMessage(IntToStr(b)); //jest -1
end;
Takie wyniki jak podajesz możesz uzyskać gdy zmienna będzie typu Word a nie Integer ale to już wynika z zastosowanego typu zmiennej i nie ma w tym nic dziwnego.
Fundamental integer types
Type Range Format
Shortint -128..127 signed 8-bit
Smallint -32768..32767 signed 16-bit
Longint -2147483648..2147483647 signed 32-bit
Int64 -2^63..2^63-1 signed 64-bit
Byte 0..255 unsigned 8-bit
Word 0..65535 unsigned 16-bit
Longword 0..4294967295 unsigned 32-bit