Ich habe eine Klasse von TPObjectList abgeleitet, um dort "Seiten" zuverwalten. Jede Seite ist ein Objekt. Die Klasse sieht wie folft aus:
Delphi-Quellcode:
type
TPageCollection = class(TObjectList)
private
function Get(Index: Integer): TImageEnVect;
public
Constructor Create;
procedure Add(Item: TImageEnVect);
procedure Insert(Index: Integer; Item: TImageEnVect);
procedure Update(Index: Integer; Item: TImageEnVect);
property Items[Index: Integer]: TImageEnVect read Get;
function FindItemByName(Name: String): Integer;
end;
implementation
{ TPageCollection }
constructor TPageCollection.Create;
begin
inherited;
Self.OwnsObjects := True;
end;
...
Setze ich nun
OwnsObjects auf True und fü+ge mehr als ein Objekt der Liste hinzu, kommt es zu einer AccessViolation, wenn die Liste bei Programmende freigegeben wird:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
PageCollection := TPageCollection.Create;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
FreeAndNil(PageCollection);
end;
Was läuft da falsch?