![]() |
Fehlermeldung: [Objekt] hat kein übergeordnetes Fenster
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:
Es kommt jedoch die Fehlermeldung:
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; "[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 |
Re: Fehlermeldung: [Objekt] hat kein übergeordnetes Fenster
die Frage wäre: Ist der Parent deiner TObject(e) auf die Listbox gesetzt? Dann kümmert sich nämlich der Parent um das Destroy(en) und du würdest es ein zweites Mal tun!
|
Re: Fehlermeldung: [Objekt] hat kein übergeordnetes Fenster
Wenn ich mich recht entsinne, kann ich doch den "normalen"
TStrings, die der TListbox angehören, nur Objekte ohne Parent zuweisen, d.h. ich bin _immer_ für deren Freigabe zuständig. Die Items selbst werden erst im anschließenden Destroy des Vorfahrens gelöscht, wie ich gesehen habe. Gruß Pfoto |
Re: Fehlermeldung: [Objekt] hat kein übergeordnetes Fenster
nein,
Delphi-Quellcode:
klappt reibungslos!
TListBox.AddItem('mein Text',Edit1);
|
Re: Fehlermeldung: [Objekt] hat kein übergeordnetes Fenster
Die AddItem-Methode gibt aber leider auch nichts automatisch wieder frei,
wie ich eben nachgelesen haben: Aus der Hilfe: Zitat:
seitens Delphi gibt, die sowas von alleine managed. Gruß Pfoto |
Re: Fehlermeldung: [Objekt] hat kein übergeordnetes Fenster
dann packe alle Objecte zusätzlich in eine TObjectList, die managed dies von alleine
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz