Vielleicht habe ich mich etwas kompliziert ausgedrückt: Und zwar wie schon gesagt habe ich ein Array der Länge 10 und lösche nun z.B. das Fünfte über eine Procedure Delete, die wie folgt aussieht:
Delphi-Quellcode:
procedure TMyClass.Delete(Index: Integer);
var
i : Integer;
begin
MyArray[Index].Free;
for i := Index to length(MyArray) - 2 do MyArray[i] := MyArray[i + 1];
setlength(MyArray, length(MyArray) - 1);
end;
Nun ist es allerdings so, dass das Free schon eine Dekrementierung des Arrays bewirkt, was ich allerdings nicht wirklich verstehe...
PS: Sicherheitsabfragen bei der Procedure habe ich weggelassen.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)