新版本的变更 / Delphi 10.3 Rio

// *** before: ***
// every local variable had to be declared in a var block before begin,
// far away from the line that actually uses it
procedure Report(const Items: TStrings);
var
  I: Integer;
  Line: string;
  Total: Integer;
begin
  Total := 0;
  for I := 0 to Items.Count - 1 do
  begin
    Line := Items[I];
    Total := Total + Length(Line);
  end;
  Writeln(Total);
end;

// *** in version 10.3: ***
procedure Report(const Items: TStrings);
begin
  var Total: Integer := 0;

  for var I := 0 to Items.Count - 1 do
  begin
    var Line: string := Items[I];
    Total := Total + Length(Line);
  end;

  Writeln(Total);
end;

// the declaration stands where the value appears, and several names of
// one type still fit on a line: var X, Y: Integer;