[DUG] Compnent creation question

Neven MacEwan neven at mwk.co.nz
Sat Oct 25 11:33:57 NZDT 2008


Paul Yes and No

a/ Yes if you are truncating the list at the same time and
b/ Yes if in the destructor for the item you destroy removes itself from 
the list (via a call to the "Owner")
c/ No, If it is your list and you clear it at the end

HTH
Neven


> I Didn't get through all the posts' texts, but don't we need to count 
> backwards when freeing list type thingies?
>  
>         for Counter := 0 to Self.Items.Count - 1 do begin
>  
> Something like . ....
>  
> for Counter :=  Self.Items.Count - 1down to 0 do begin
> Paul
> 2008/10/16 Robert martin <rob at chreos.co.nz <mailto:rob at chreos.co.nz>>
>
>     (Resend didn't seem to come through last time)
>
>     Hi
>
>     Thanks Kyley.
>
>     I actually managed to get that somewhat working but picked up a number
>     of other issues.  for now I have given up and just overridden the
>     clear
>     procedure to free the items.  Not great but for my purposes adequate.
>
>
>     Thanks to all for suggestions and comments.
>     Rob
>
>
>     Kyley Harris wrote:
>     > Override:
>     >     function GetItemsClass: TCustomComboBoxStringsClass; virtual;
>     > abstract;
>     > 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't loose your object
>     > pointers. you can also add asserts or tests on the combobox.handle
>     > rather than letting it crash all the time. 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.
>     >
>     >
>     >
>     > On Wed, Oct 15, 2008 at 4:22 PM, Robert martin <rob at chreos.co.nz
>     <mailto:rob at chreos.co.nz>
>     > <mailto:rob at chreos.co.nz <mailto:rob at chreos.co.nz>>> wrote:
>     >
>     >     Hi
>     >
>     >     Just trying to make a TComboBox that automatically frees its
>     items.
>     >
>     >     I have the following code in the destructor
>     >
>     >        if (fAutomaticallyFreeObjects = True)
>     >                and ((csDesigning in ComponentState) = False)
>     then begin
>     >            try
>     >                for Counter := 0 to Self.Items.Count - 1 do begin
>     >                    O := Items.Objects[Counter];
>     >                    if (O <> nil) then begin
>     >                       O.Free;
>     >                    end;
>     >                end;
>     >            except
>     >                on e: exception do begin
>     >                    ShowMessage(IntToStr(i) + ' ' + 'Attempting to
>     >     automatically free object memory.  The following error
>     occured...' +
>     >     #13#13 + e.message);
>     >                end;
>     >            end;
>     >        end;
>     >
>     >
>     >     I get a 'Control '' has no parent error.  This happens when
>     attempting
>     >     to access the .Items property.  My custom error handling
>     does not
>     >     trigger.
>     >
>     >     Any suggestions ?
>     >
>     >     Thanks
>     >     Rob
>     >     _______________________________________________
>     >     NZ Borland Developers Group - Delphi mailing list
>     >     Post: delphi at delphi.org.nz <mailto:delphi at delphi.org.nz>
>     <mailto:delphi at delphi.org.nz <mailto:delphi at delphi.org.nz>>
>     >     Admin: http://delphi.org.nz/mailman/listinfo/delphi
>     >     Unsubscribe: send an email to delphi-request at delphi.org.nz
>     <mailto:delphi-request at delphi.org.nz>
>     >     <mailto:delphi-request at delphi.org.nz
>     <mailto:delphi-request at delphi.org.nz>> with Subject: unsubscribe
>     >
>     >
>     >
>     >
>     > --
>     > Kyley Harris
>     > Harris Software
>     > +64-21-671-821
>     >
>     ------------------------------------------------------------------------
>     >
>     > _______________________________________________
>     > NZ Borland Developers Group - Delphi mailing list
>     > Post: delphi at delphi.org.nz <mailto:delphi at delphi.org.nz>
>     > Admin: http://delphi.org.nz/mailman/listinfo/delphi
>     > Unsubscribe: send an email to delphi-request at delphi.org.nz
>     <mailto:delphi-request at delphi.org.nz> with Subject: unsubscribe
>
>     _______________________________________________
>     NZ Borland Developers Group - Delphi mailing list
>     Post: delphi at delphi.org.nz <mailto:delphi at delphi.org.nz>
>     Admin: http://delphi.org.nz/mailman/listinfo/delphi
>     Unsubscribe: send an email to delphi-request at delphi.org.nz
>     <mailto:delphi-request at delphi.org.nz> with Subject: unsubscribe
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> NZ Borland Developers Group - Delphi mailing list
> Post: delphi at delphi.org.nz
> Admin: http://delphi.org.nz/mailman/listinfo/delphi
> Unsubscribe: send an email to delphi-request at delphi.org.nz with Subject: unsubscribe



More information about the Delphi mailing list