Изменения в новых версиях / Delphi XE7

// *** before: ***
// Insert and Delete worked on strings only. For an array the elements
// were moved by hand and the length adjusted afterwards
var
  A: TArray<Integer>;
  I: Integer;
begin
  // remove the element at index 2
  for I := 2 to High(A) - 1 do
    A[I] := A[I + 1];
  SetLength(A, Length(A) - 1);
end;

// *** in version XE7: ***
var
  A: TArray<Integer>;
begin
  A := [123456];

  Delete(A, 21);          // 1 2 4 5 6 - one element at index 2
  Insert([89], A, 4);     // 1 2 4 5 8 9 6 - a whole array at index 4
  Insert(0, A, 0);          // a single value at the front

  // the same two intrinsics keep working on strings
end;