[Lazarus] Detecting mouse type

tim launchbury tim at tlaunchbury.ukfsn.org
Thu Apr 8 09:42:09 CEST 2010


Mattias Gärtner schrieb:

> 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.

IMO BorderSpacing should be implemented using the Delphi anchors.

Clearing properties IMO is not a good idea, when the user changes the 
layouter later.

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

Such specific properties may be moved into the according layouter, and 
should not burden standard layouts with unusable or inconsistent options.


> 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.

IMO CalculatePreferredSize should have arguments (constraints), settable 
by the container (layouter). See my parallel mail.

Perhaps we should distinguish between "outer" layout managers, that 
handle almost regular (horizontal/vertical/grid) layouts, and properties 
that allow to position or size a control inside its determined cell. 
This would simplify the grid calculations, by leaving room for 
fine-tuning without influencing the determined layout cells.

DoDi





More information about the Lazarus mailing list