On Thu, 3 Jun 2010, Graeme Geldenhuys wrote:
On 3 June 2010 17:24, Michael Van Canneyt <mich...@freepascal.org> wrote:
You must override GetChildren.
In the LCL, TWinControl overrides GetChildren to write child controls.
It is documented.
But why is GetChildren needed? Why can't TWriter use ComponentCount
and Components[] like I have done in the TraverseComponents()
recursive procedure?
Because Borland decided otherwise.
Actually, there is a good reason: some components create internal
components they own, and which they don't want to have streamed.
The 'GetChildren' allows you to control what gets streamed and
what not.
" Adds component to children list which have no parent.
(TWinControl only lists components with parents) "
Is that still true? In fpGUI I set Owner and Parent. What is
different in fpGUI (compared to LCL or VCL) is that Owner = Parent,
always. I don't see a need for them to be different - one widget can
just as easily manage the lifespan of another widget. Re-parenting a
widgets also works in fpGUI, by simply transferring the ownership to
the new parent widget (inserting into Components[] array).
In LCL the owner is always the form. Otherwise the form variables
would not work.
Michael.
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal