Moin moin,
ich würde auch Shimas Methode bevorzugen...
Delphi-Quellcode:
type
TShapeArr = Array of TShape;
//..
procedure RemoveElementFromArray(var a : TShapeArr; Idx: Integer);
var
I, x: Integer;
begin
x := Length(a);
if x > 0 then begin
Assert((idx >= 0) and (idx < x));
a[idx].Free;
for I := Idx to x-2 do begin
a[I] := a[Succ(I)];
end;
SetLength(a, x -1);
end;
end;
So sollte es aber funktionieren.