Рассмотрим, как Delphi (и большинство языков) обрабатывают 32-разрядные целые числа: Википедия
В этом контексте Integer
- это 32-разрядное целое число, и любое значение меньше -2,147,483,648
или больше 2,147,483,647
НЕ является действительным 32-разрядным целым числом.
«Здравый смысл» будет означать, что целые числа варьируются от -∞
до +∞
, но это не так вархитектура компьютера.
Используйте Int64
, если хотите «охватить» больше значений.
В вашем случае код должен выглядеть следующим образом:
var
m,lo,cshl,cdhl,cjhl,csl,cdl,cjl:Int64;
begin
m := StrToInt64(Edit1.Text);
...
end;
Cheers