TObjectList ist die beste Wahl, sonst macht man noch Fehler wie den folgenden:
Zitat von
mika:
Code:
max := Length(myLKW);
For I := max Downto 0 do
begin
myLKW[i].myDestroy;
sleep(100);
end;
Length() liefert die Anzahl der Elemente, diese ist bei offenen Arrays aber um eins größer als der höchste zulässige Index (anders als bei den mit Index 1 beginnenden Strings, wo Length den Index des letzten Zeichens liefert). Mit myLKW[Lenght(myLKW)] greifst du fröhlich auf uninitialisierten bzw. ungültigen Speicher zu. Ersetze Length(myLKW) durch High(myLKW) und gut ist.
Und die Variable max kannst du dir eigentlich auch sparen, der Compiler optimiert die höchstwahrscheinlich sowieso weg. for i := High() downto 0 do... ist besser lesbar als for i := max downto 0 do..., weil man nicht erst nachsehen muss, was "max" eigentlich ist. Gilt natürlich nicht, wenn die Berechnung von max kompliziert ist oder max öfter als einmal benötigt wird.