Eine generische Lösung wäre beispielsweise:
Delphi-Quellcode:
class procedure TArrayHelper.Delete<T>(var A: TArray<T>; Index: Integer);
var
I: Integer;
begin
for I := Index to High(A) - 1 do
begin
A[I] := A[I + 1];
end;
SetLength(A, Length(A) - 1);
end;
class procedure TArrayHelper.Insert<T>(var A: TArray<T>; Index: Integer; const Item: T);
var
I: Integer;
begin
SetLength(A, Length(A) + 1);
for I := High(A) - 1 downto Index do
begin
A[I + 1] := A[I];
end;
A[Index] := Item;
end;