On Tue, 6 Apr 2010, Hans-Peter Diettrich wrote:
Michael Van Canneyt schrieb:
I wonder how you want LCL code to use a dropped layout component. When no
predefined property exists, every TWinControl had to be searched for an
according component, whenever a layout method or property shall be
accessed.
I would use a mechanism similar to the datalink. As soon as you tell the
layout manager to manage a certain control, a hook is installed in the
control.
And where do you want to store layout specific information?
In the layout component, obviously. Where it belongs.
It does not belong in the control. If you use a layouter,
all control is passed to the layouter, and hence also all
extra information needed to realize the layout.
With a dedicated LayoutManager property, all anchor-docking related stuff
could be moved from TWinControl into the AnchoredLayoutManager, and
DockManager could be replaced (or merged with) the LayoutManager. In
further steps the DockClient list could be removed, the Controls list can
be used instead. Delphi compatibility can be maintained by delegation to
the still existing elements.
The reason I don't want to introduce the layoutmanager property is that it
simply does not make sense for all TWinControls. a TEdit does not need a
layoutmanager, only the parent of the TEdit needs one.
There is much stuff that doesn't make sense for all controls.
That should be a good reason for not adding more stuff.
What should be complicated, when the Delphi layout manager is one of
multiple available managers? How do you want to implement different layout
management for parts of a form?
Simply drop 2 layouters, and point them to the right parts of the form.
With the result that the form is crowded with layouters :-(
I would be very surprised to see more than 4 layouters on a form.
Most forms will have a single TTableLayout or TBorderLayout component,
and that's it.
Not to mention prefabricated controls, e.g. with horizontal or vertical
layout.
I don't understand what you mean here.
Michael.
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus