Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Combobox mit AddObject - Speicher automatisch freigeben (https://www.delphipraxis.net/86828-combobox-mit-addobject-speicher-automatisch-freigeben.html)

backdraft 22. Feb 2007 09:33

Re: Combobox mit AddObject - Speicher automatisch freigeben
 
Zitat:

Zitat von IngoD7
Offen gestanden ergeben sich für mich von einem Posting von dir zum nächsten zuviele Abweichungen. Das mit der Ide (also Entwurfszeit) ist ja nun völlig neu.

Allerdings möchte ich mich jetzt auch langsam ausklinken, weil ich heute sehr lange an dieser Sache herumgetestet habe und nun hören muss, dass alles nicht der wirklichen Umsetzung entsprach. Sorry.

Hallo, zwischen dem Listing und meinem Quellcode weicht nix ab, ausser, dass ich die Komponente in der IDE registriert habe, und dann via IDE auf die Form gelegt habe.
Da dieses für jemand anders immer mehr Aufwand ist, habe ich die Kompoennte einfach mit in die Unit gelegt und dynamisch angelegt.

Das ändert aber nichts an der Tatsache, dass Speicherlöcher bleiben, egal ob die IDE den Free macht, oder ich ihn am Ende aufrufe. Die Objekte werden nicht freigeben.

Danke trotzdem für die Hilfe, ich lasse es jetzt erstmal auf TComponent als Basisklasse um nicht weiter Speicherlöcher zu verursachen.

Eigentlich muss doch jeder, der schonmal mit einer TComboBox + AddObject gearbeitet hat das selbe Problem haben, wenn die Komponente das Free selbst übernehmen soll.

Grüße Oliver

marabu 23. Feb 2007 13:49

Re: Combobox mit AddObject - Speicher automatisch freigeben
 
Hallo Oliver,

Zitat:

Zitat von backdraft
... Eigentlich muss doch jeder, der schonmal mit einer TComboBox + AddObject gearbeitet hat das selbe Problem haben, wenn die Komponente das Free selbst übernehmen soll. ...

ja und nein.

Der richtige Ort für die Zerstörung der Objekte ist nach meiner Meinung nicht die ComboBox-Komponente, sondern die über GetItemsClass.Create() erzeugte Liste "Items". Leider ist in D7 die Basisklasse TComboBoxStrings nicht öffentlich, sonst könnte ich in einer abgeleiteten Klasse die Methode Delete() überschreiben und in Abhängigkeit von einer noch einzuführenden property OwnsObjects eine allgemeine Lösung schaffen.

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:25 Uhr.
Seite 2 von 2     12   

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