Hallo zusammen!
ich habe hier einen Nachfahren einer TListbox, der mit AddObject
hinzugefügte Objekte selbst verwaltet (ähnlich wie TObjectList).
Das Problem:
Im Destroy-Bereich (der natürlich überschrieben wurde), möchte
ich alle Objekte freigeben:
Delphi-Quellcode:
destructor TAdvEditListBox.Destroy;
var
i: integer;
begin
If fOwnsObjects then
for i:= 0 to Items.Count-1 do
If assigned(Items.Objects[i]) then
TObject(Items.Objects[i]).free;
inherited;
end;
Es kommt jedoch die Fehlermeldung:
"[Objekt] hat kein übergeordnetes Fenster".
Aber was haben die Items der noch nicht zerstörten Listbox
mit einem übergeordneten Fenster zu tun?
Oder wird vielleicht die Listbox schon vor der Methode
"Destroy" über "DestroyWnd" zerstört? Ich sehe aber
gar keinen Aufruf von "DestroyWnd" vor "Destroy"
Merkwürdigerweise wird "DestroyWnd" sogar ganz zu Beginn
bei Erstellung der Komponente aufgerufen...
Wäre toll, wenn mir hier einer zum Durchblick verhilft!
Dank und Gruß
Pfoto