Zum ursprünglichen Problem:
Delphi-Quellcode:
for i := Gegneranzahl
downto 1
do
begin
if not Gegner[i].alive
then
Begin
if i < Gegneranzahl
then
Gegner[I] := Gegner[Gegneranzahl];
Dec(Gegneranzahl);
end;
end;
Die Umstellung von Records und Arrays auf Objekte und Objektlisten scheint hier sinnvoll. Der Aufwand dürfte sich in Grenzen halten.
Die Alternative mit TList und Pointern zu arbeiten, erfordert mindestens den selben Aufwand und ist nicht so komfortabel.