<div dir="ltr"><div>Override:</div>
<div>&nbsp;&nbsp;&nbsp; function GetItemsClass: TCustomComboBoxStringsClass; virtual; abstract;<br></div>
<div>Create your own subclass of TCustomComboBoxStrings and override the Item add and Item delete routines. You need to place a synched copy of your objects into a seperate list so that when the windows handle to the combobox is released or recreated you don&#39;t loose your object pointers. you can also add asserts or tests on the combobox.handle rather than letting it crash all the time.&nbsp;then on the destroy of your TCustomCombobox strings free all the objects in the list.. This would be easiest by using a TObjectList with owns objects = true.</div>

<div><br><br>&nbsp;</div>
<div class="gmail_quote">On Wed, Oct 15, 2008 at 4:22 PM, Robert martin <span dir="ltr">&lt;<a href="mailto:rob@chreos.co.nz">rob@chreos.co.nz</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Hi<br><br>Just trying to make a TComboBox that automatically frees its items.<br><br>I have the following code in the destructor<br>
<br>&nbsp; &nbsp;if (fAutomaticallyFreeObjects = True)<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;and ((csDesigning in ComponentState) = False) then begin<br>&nbsp; &nbsp; &nbsp; &nbsp;try<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for Counter := 0 to Self.Items.Count - 1 do begin<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;O := Items.Objects[Counter];<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (O &lt;&gt; nil) then begin<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; O.Free;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;<br>&nbsp; &nbsp; &nbsp; &nbsp;except<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;on e: exception do begin<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ShowMessage(IntToStr(i) + &#39; &#39; + &#39;Attempting to<br>
automatically free object memory. &nbsp;The following error occured...&#39; +<br>#13#13 + e.message);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;<br>&nbsp; &nbsp; &nbsp; &nbsp;end;<br>&nbsp; &nbsp;end;<br><br><br>I get a &#39;Control &#39;&#39; has no parent error. &nbsp;This happens when attempting<br>
to access the .Items property. &nbsp;My custom error handling does not trigger.<br><br>Any suggestions ?<br><br>Thanks<br>Rob<br>_______________________________________________<br>NZ Borland Developers Group - Delphi mailing list<br>
Post: <a href="mailto:delphi@delphi.org.nz">delphi@delphi.org.nz</a><br>Admin: <a href="http://delphi.org.nz/mailman/listinfo/delphi" target="_blank">http://delphi.org.nz/mailman/listinfo/delphi</a><br>Unsubscribe: send an email to <a href="mailto:delphi-request@delphi.org.nz">delphi-request@delphi.org.nz</a> with Subject: unsubscribe<br>
</blockquote></div><br><br clear="all"><br>-- <br>Kyley Harris<br>Harris Software<br>+64-21-671-821<br></div>