![]() |
Re: TObjectList: AV wenn OwnsObject := True
Zitat:
|
Re: TObjectList: AV wenn OwnsObject := True
Gar nichts. Den habe ich nicht überschrieben, das ist noch der original Destruktor von der Komponente. Allerdings liegen auf der Komponete noch andere Objekte, die zu der Komponente gehören, wie Layer usw. Allerdings bekomme ich auch eine AV, wenn sich dort keine weiteren Objekte befinden.
Also vom Parent entferne ich sie nicht. Aber das hatte auch keine Probleme als ich noch mit TList gearbeitet habe und im Destruktor die Objekte von Hand mit Free freigegeben habe. @sakura: Wie gesagt, die TImageEnVect Komponenten, die ich dynamisch erstelle liegen nur in meinem eigenen Container von Typ TObjectList. Sie haben zwar das Formular als Parent aber das sollte ja eigentlich nicht stören. Und wenn ich OwnsObjects auf False setze, dann muss ich mich ja wieder selber um das Freigeben kümmern, was ich ja eigentlich vermeiden wollte. PS: @sakura: Hast du mit diesen Komponenten schon eigene Erfahrungen gemacht? Ich hätte da nämlich noch das ein oder andere Problem. Und die Newsgroup war bisher noch nicht sehr hilfreich. |
Re: TObjectList: AV wenn OwnsObject := True
Hallo Michael,
Zitat:
Gruß Hawkeye |
Re: TObjectList: AV wenn OwnsObject := True
Ich habe auch auf Parent gesetzt, aber habs grade getestet und habe keinen Fehler bekommen :gruebel:
|
Re: TObjectList: AV wenn OwnsObject := True
Das heißt, ich müsste den Destruktor dann trotzdem noch mal überschreiben und dort dann so was machen:
Delphi-Quellcode:
Womit ja dann in meinem Fall eine ObjectListe keine weiteren Vorteile zu einer normalen Liste bildet, da ich ja in beiden Fällen den Destruktor überschreiben müsste.
var
i: Integer; begin for i := 0 to self.Count - 1 do self.Items[i].Parent := nil; inherited; |
Re: TObjectList: AV wenn OwnsObject := True
Ist das ein großes projekt? Oder kannst du das mal hier als Anhang anheften damit man sich das mal genau anschauen kann?
Edit: Aargh du hast ja ne 3rd party Kompo drinne :wall: |
Re: TObjectList: AV wenn OwnsObject := True
Noch ist es nicht groß. Aber es verwendet eben eine Fremdkomponente, die man erst installieren müsste. Desweiteren mache ich das für die Firma und ich scheue mich etwas, das hier online zu stellen.
|
Re: TObjectList: AV wenn OwnsObject := True
|
Re: TObjectList: AV wenn OwnsObject := True
Auch damit bekomme ich eine AV, auch wenn ich im Destruktor den parent auf nil setze:
Delphi-Quellcode:
Das ist irgendwie alles nichts. Ich glaube, ich bleibe doch bei meiner TList. :?
self.Items[i].Parent := nil;
|
Re: TObjectList: AV wenn OwnsObject := True
Also ich hab jetzt spasseshalber mal alle Komponenten vom Formular hinzugefügt und das ganze freigegeben.. kein Fehler..
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:50 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