Einzelnen Beitrag anzeigen

Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#1

Fehlermeldung: [Objekt] hat kein übergeordnetes Fenster

  Alt 12. Feb 2008, 11:33
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
Jürgen Höfs
  Mit Zitat antworten Zitat