Moin Michael,
irgendwie fehlt mir da der Destructor.
Delphi-Quellcode:
procedure TPlayerCollection.Free;
var
i: Integer;
begin
for i := 0 to self.Count - 1 do
self.Items[i].Free;
// Mindestens
inherited Free;
end;
wäre besser
Delphi-Quellcode:
TPlayerCollection = class(TList)
//...
public
destructor Destroy; override;
// entfällt ersatzlos
procedure Free;
//...
destructor TPlayerCollection.Destroy;
var
i: Integer;
begin
for i := 0 to self.Count - 1 do
self.Items[i].Free;
inherited;
end;
Zugegeben, bei TList spielt das keine grosse Rolle, da diese ja direkt von TObject abgeleitet ist, aber so ganz sauber ist es nicht
Warum eigentlich nicht gleich eine TObjectList?
Da OwnsObjects hier standardmässig auf true steht, würdest Du Dir die Freigabe der Objekte sparen können.