Converting between integer types

Basic types / Numbers / Integer

var
  D1: Int64;
  D2, D3, D4: Integer;
  D5: Int64;
begin
  D1 := High(Int64);
  //D1 is 9223372036854775807

  //truncation to low 32 bits
  D2 := Integer(D1);
  //D2 is -1

  D1 := 10;
  D3 := Integer(D1);
  //D3 is 10

  //widening is implicit
  D4 := High(Integer);
  //D4 is 2147483647
  D5 := D4;
  //D5 is 2147483647

  WriteLn('d2 = ', D2);
  WriteLn('d3 = ', D3);
  WriteLn('d4 = ', D4);
  WriteLn('d5 = ', D5);
end.