Michael Van Canneyt schrieb:

Now the TControl/TWinControl classes have a set of properties that is the union of all properties of a large set of layouters (because it must mimic
the behaviour of all these layouters put together):
     * AutoSize
     * Anchors
     * Align
     * Constraints
     * BorderSpacing
     * ChildSizing

Only Align, Anchors and ChildSizing.Layout are layouts. The rest are
details that apply to all layouts. See the layouters of gtk.

In my view, this is not correct. Borderspacing, Constraints and AutoSize are also properties used in layouting. I see no reason why a control would
have these properties (assuming we were to move all layouting to a separate
component).

IMO it's quite simple. A layout affects the position of child controls inside a container control, nothing else. Borders, Constraints and Autosize are general properties of all controls, which must be handled in/by the control itself.


For example I know many students using the java layouter. They are
seldom happy with the result and often use a fixed layout and program
anchors.

Maybe the Java layouter is simply no good ?

The Java layout managers are fine, but their use requires discipline, and a concept before one starts to code or drag&drop controls onto a form. The same for any layout, regardless of how a GUI is composed or managed.


Some more ideas:

It would help beginners when some visual feedback were given by a visual GUI designer, about e.g. anchors or the direction of expansion within every frame. A simulation of other languages were fine, because English texts sometimes are 50% shorter than the same text in other languages.

All Autosize controls should have two degrees of freedom, i.e. they should be capable of splitting text, tabs or buttons into multiple lines, when the horizontal extent is limited. Every regular layout manager should manage one restricted and one free direction of extent, where it receives or determines the extent in the restricted direction itself, and returns the resulting extent in the free direction. Both the minimal and maximal extents can be returned at the same time, depending on the minimal (required) and maximal (available) extent in the restricted direction.

DoDi


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

Reply via email to