Zitat von Alexander Klenin <[email protected]>:

On Wed, Apr 7, 2010 at 22:47, Michael Van Canneyt
<[email protected]> wrote:
I agree for Constraints, but not the other two.

Funny, I just argued exactly the other way around ;-)

Some properties must be handled by all Layouters. For example the interface constraints (you can not resize a combobox free under windows and a scrollbar not under gtk).

The other constraint properties makes sense in all layouters too, so I recommend to use them (not reinventing the wheel). They are also applied in all LCL code. If a layouter does not like them, I recommend that it clears the constraints instead of ignoring them.

Borderspacing properties could be used too in all layouts (I can imagine) and for consistency I recommend that they are used - at least - in a similar way. This is more a design guide line.

AnchorSides are only for fixed and Align controls. This is special to the default LCL layouter. The same for ChildSizing.


I have trouble to find the direction of this thread, so I will repeat my proposal:

Every TControl gets a property "Layouter: TLControlLayouter". TLControlLayouter gets a bunch of methods. The most important ones are CalculatePreferredSize and AlignControls. CalculatePreferredSize computes the preferred size, which the parent layouter can use. AlignControls resizes/positions the child controls according to the current bounds. If Layouter=nil then the default layouter will be used.


Mattias




--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to