[Lazarus] Autosize behaviour

Mattias Gärtner nc-gaertnma at netcologne.de
Thu Apr 8 16:41:53 CEST 2010


Zitat von Hans-Peter Diettrich <DrDiettrich1 at aol.com>:

> Mattias Gaertner schrieb:
>
>>> BorderSpacing and ChildSizing IMO are specific to an layout  
>>> manager, meaningless to other layout managers. BorderSpacing IMO  
>>> is equivalent to the Delphi anchors.
>>
>> They are not equivalent. Delphi Anchors are only the space to the
>> parent. BorderSpacing allows to define the space between a label and an
>> anchored button.
>
> The description of BorderSpacing is not very clear, can you improve it?

I tried. See here:

http://wiki.lazarus.freepascal.org/Autosize_/_Layout#BorderSpacing


> In a generalized layout management every control could be adjustable  
> inside the cell, that has been determined by the layout manager.  
> I.e. a regular[1] layout manager would tile the client area and  
> assign every control a cell. When required, every control can align  
> itself inside its cell, instead of inside its parent, using the same  
> properties. Then the fine-tuning is independent from a specific  
> layout manager or control type.

Yes, see for example here:
http://wiki.lazarus.freepascal.org/Autosize_/_Layout#Individual_cells

What is missing in the current LCL tables are column and row spans.


> [1] With "regular" I mean an layout manager that splits the entire  
> client area into rectangles, maybe 1-D (horizontal, vertical) or 2-D  
> (grid). Every rectangle can be splitted again in the same way,  
> resulting in a tree layout; it's a matter of convenience whether the  
> layout manager builds an entire tree, like in a dock-tree, or  
> multiple layout managers are used for further subdividing the  
> rectangles.

I think multiple layouts are enough.

> Such layouts are quite easy to manage, in contrast to an arbitrary  
> placement and anchoring of every single control within its parent or  
> relative other controls (almost unmanaged until unmanageable).

I tend to disagree. Both can be easy and both can be pain.
Tables are worse when some controls should not be placed into the  
raster. And Anchoring misses the alignment with multiple controls.
Both need a good GUI. There should be a mode to visualize Anchors in  
the designer for example with arrows. And for tables there should be a  
mode to show the borders.


Mattias







More information about the Lazarus mailing list