Docs: LCL/controls. Fixes XML tagging, spelling.

* Other whitespace changes are editor-induced word wrapping.

(cherry picked from commit cf1d97517f)
This commit is contained in:
dsiders 2025-06-03 11:51:02 -04:00
parent c101977682
commit 2790a6996d

View File

@ -19216,40 +19216,59 @@ which determine the position / alignment for the child control. Anchored or
aligned controls are excluded from the grid layout. aligned controls are excluded from the grid layout.
</p> </p>
<p> <p>
There are different algorithm for sizing the rows and columns in the grid. There are different algorithm for sizing the rows and columns in the grid. All
All algorithms base their calculations on the "PreferredSize" of the child-controls. algorithms base their calculations on the "PreferredSize" of the
This is usually the size to which the controls would autosize. For controls child-controls. This is usually the size to which the controls would autosize.
that have constraints, the PreferredSize is the size after applying those constraints. For controls that have constraints, the PreferredSize is the size after
(E.g., a TLabel with 20 pixel of text, but a MinSize of 50 will report a PreferredSize of 50)<br/> applying those constraints. (E.g., a TLabel with 20 pixel of text, but a
For each column or row in the grid, all child-controls in that column/row are checked for their PreferredSize. MinSize of 50 will report a PreferredSize of 50).
Each columns/rows size is then based on the largest PreferredSize it contains.
</p> </p>
<p> <p>
Rows/Columns will not shrink below the MinWidth/MinHeight of any child that they contain, even if the algorithm would compute a lower value. For each column or row in the grid, all child-controls in that column/row are
Any algorithm will instead shrink other Rows/Columns more aggressively. checked for their PreferredSize. Each columns/rows size is then based on the
As a result other row/columns can become invisible due to being zero sized. largest PreferredSize it contains.
Also the grid may become wider than the control in which it is shown and will be cut off or need scrolling.<br/> </p>
Rows/Columns will shrink (even if being otherwise enlarged) to the smallest MaxWidth/MaxHeight of any child they contain, if - and only if - that child has <p>
CellAlignHorizontal/CellAlignVertical = ccaFill. For other alignments rows/cells will grow based on the PreferredSize. Rows/Columns will not shrink below the MinWidth/MinHeight of any child that
If the PreferredSize is the constrained Maximum, then the cell will still be scaled according to the algorithm, but the child will not fill the entire cell. they contain, even if the algorithm would compute a lower value. Any algorithm
If rows/columns are constrained by maximum values, then the grid may not fill the entire control in which it is shown. will instead shrink other Rows/Columns more aggressively. As a result other row
/columns can become invisible due to being zero sized. Also the grid may
become wider than the control in which it is shown and will be cut off or need
scrolling.
</p>
<p>
Rows/Columns will shrink (even if being otherwise enlarged) to the smallest
MaxWidth/MaxHeight of any child they contain, if - and only if - that child
has CellAlignHorizontal/CellAlignVertical = ccaFill. For other alignments rows/
cells will grow based on the PreferredSize. If the PreferredSize is the
constrained Maximum, then the cell will still be scaled according to the
algorithm, but the child will not fill the entire cell. If rows/columns are
constrained by maximum values, then the grid may not fill the entire control
in which it is shown.
</p>
<p>
All algorithms (except crsAnchorAligning) distribute the entire available
parent's ClientArea to the grid for the children. Space for each
child-controls' BorderSpacing and the parent's ChildSizing's spacing will be
put around and between the cells.
</p> </p>
<p> <p>
All algorithms (except crsAnchorAligning) distribute the entire available parent's ClientArea to the grid for the children.
Space for each child-ontrols' BorderSpacing and the parent's ChildSizing's spacing will be put around and between the cells.
<br/>
See TControl.BorderSpacing and TControl.ChildSizing for more information. See TControl.BorderSpacing and TControl.ChildSizing for more information.
<br/> </p>
When Constraints.MinWidth/MinHeight is used, the grid can become larger than the ClientArea. <p>
And when Constraints.MaxWidth/MaxHeight is used together with ccaFill, then the grid may end up smaller. When Constraints.MinWidth/MinHeight is used, the grid can become larger than
the ClientArea. And when Constraints.MaxWidth/MaxHeight is used together with
ccaFill, then the grid may end up smaller.
</p> </p>
<p> <p>
Conflicts between MaxWidth and MinWidth are solved by using the MaxWidth. Conflicts between MaxWidth and MinWidth are solved by using the MaxWidth.
</p> </p>
</p>
Child-controls will be sized to their cells dimension if they have BorderSpacing.CellAlignHorizontal/CellAlignVertical = ccaFill.
Otherwise they will keep their preferred size and be placed inside the cell according to the specified position in CellAlign.
<p> <p>
Child-controls will be sized to their cells dimension if they have
BorderSpacing.CellAlignHorizontal/CellAlignVertical = ccaFill. Otherwise they
will keep their preferred size and be placed inside the cell according to the
specified position in CellAlign.
</p>
<dl> <dl>
<dt>crsAnchorAligning</dt> <dt>crsAnchorAligning</dt>
<dd> <dd>
@ -19281,7 +19300,8 @@ Scales child keeps the relative proportion between the children sizes.
crsScaleChilds scales the size of each column or row to crsScaleChilds scales the size of each column or row to
fit the space in the parent, while keeping the ratio of the rows/columns fit the space in the parent, while keeping the ratio of the rows/columns
equal to the ratio of the PreferredSizes equal to the ratio of the PreferredSizes
<br/> </p>
<p>
The proportional ratio may not be kept, if child controls are limited by size constraints. The proportional ratio may not be kept, if child controls are limited by size constraints.
</p> </p>
<p> <p>
@ -19315,11 +19335,12 @@ Enlarge or shrink child controls equally, i.e. by the same number of pixels.
<p> <p>
crsHomogenousChildResize applies a homogenous size to child controls in the crsHomogenousChildResize applies a homogenous size to child controls in the
grid layout. All children are grown/shrunk by the same number of pixels. grid layout. All children are grown/shrunk by the same number of pixels.
<br/> </p>
The algorithm takes the difference between the parents ClientSize and the sum of <p>
all PreferredSizes. This difference (free or missing space in the parent control) The algorithm takes the difference between the parents ClientSize and the sum
is then divided by the number of rows/columns and the correct fraction of the of all PreferredSizes. This difference (free or missing space in the parent
space is added/subtracted to/from the size of each cell. control) is then divided by the number of rows/columns and the correct
fraction of the space is added/subtracted to/from the size of each cell.
</p> </p>
<p> <p>
For a horizontal left-to-right layout with 3 controls A, B, and C: For a horizontal left-to-right layout with 3 controls A, B, and C:
@ -19352,12 +19373,13 @@ Enlarges the space between child controls equally.
<p> <p>
crsHomogenousSpaceResize applies a uniform number of pixels as horizontal or crsHomogenousSpaceResize applies a uniform number of pixels as horizontal or
vertical spacing between child controls on the same column or row. vertical spacing between child controls on the same column or row.
<br/> </p>
The algorithm takes the difference between the parents ClientSize and the sum of <p>
all PreferredSizes. This difference (free or missing space in the parent control) The algorithm takes the difference between the parents ClientSize and the sum
is then divided by the number of rows/columns and the correct fraction of the of all PreferredSizes. This difference (free or missing space in the parent
space is added/subtracted to/from the spacing between the cells and the spacing control) is then divided by the number of rows/columns and the correct
at the border of the grid. fraction of the space is added/subtracted to/from the spacing between the
cells and the spacing at the border of the grid.
</p> </p>
<p> <p>
For a horizontal left-to-right layout with 3 controls A, B, and C: For a horizontal left-to-right layout with 3 controls A, B, and C:
@ -19506,7 +19528,8 @@ Provides settings to layout child-controls into a grid (table) layout.
<var>TControlChildSizing</var> is a <var>TPersistent</var> descendant which <var>TControlChildSizing</var> is a <var>TPersistent</var> descendant which
provides properties and methods used to layout, align, and resize child provides properties and methods used to layout, align, and resize child
controls fitting into a grid on their parent control. controls fitting into a grid on their parent control.
<br/> </p>
<p>
<var>TControlChildSizing</var> also provided "Spacing" settings. <var>TControlChildSizing</var> also provided "Spacing" settings.
Those are applied to the grid <b>and also</b> to anchored or aligned controls Those are applied to the grid <b>and also</b> to anchored or aligned controls
outside the grid. outside the grid.
@ -19514,12 +19537,15 @@ outside the grid.
<p> <p>
<var>Layout</var> and <var>ControlsPerLine</var> control if the grid is used, <var>Layout</var> and <var>ControlsPerLine</var> control if the grid is used,
how it is sized and in which order the child-controls are placed into the grid. how it is sized and in which order the child-controls are placed into the grid.
<br/> </p>
<p>
<var>EnlargeHorizontal</var>, <var>EnlargeVerticalHorizontal</var>, <var>EnlargeHorizontal</var>, <var>EnlargeVerticalHorizontal</var>,
<var>ShrinkHorizontal</var>, <var>ShrinkVerticalHorizontal</var> define <var>ShrinkHorizontal</var>, <var>ShrinkVerticalHorizontal</var> define
how the cells of the grid are sized. Child-controls are then adjusted to that how the cells of the grid are sized. Child-controls are then adjusted to that
size depending on their BorderSpacing.CellAlignHorizontal/CellAlignVertical properties. size depending on their BorderSpacing.CellAlignHorizontal/CellAlignVertical
<br/> properties.
</p>
<p>
<var>HorizontalSpacing</var>, <var>VerticalSpacingHorizontalSpacing</var>, <var>HorizontalSpacing</var>, <var>VerticalSpacingHorizontalSpacing</var>,
<var>LeftRightSpacing</var>, <var>TopBottomSpacing</var> can be used to add <var>LeftRightSpacing</var>, <var>TopBottomSpacing</var> can be used to add
space between and around the cells. space between and around the cells.
@ -19530,7 +19556,8 @@ id="TControlChildrenLayout"/> for details about the enumeration values used
in the properties. in the properties.
</p> </p>
<p> <p>
Additional information about child sizing and layout can be found on the Lazarus Wiki at: Additional information about child sizing and layout can be found on the
Lazarus Wiki at:
</p> </p>
<p> <p>
<url href="https://wiki.lazarus.freepascal.org/Autosize_/_Layout"> <url href="https://wiki.lazarus.freepascal.org/Autosize_/_Layout">
@ -19803,7 +19830,8 @@ implementation-specific properties and methods.
<element name="TControlChildSizing.ControlsPerLine"> <element name="TControlChildSizing.ControlsPerLine">
<short> <short>
The number of controls displayed per column or row for the orientation / fill direction specified in Layout. The number of controls displayed per column or row for the orientation / fill
direction specified in Layout.
</short> </short>
<descr> <descr>
<p> <p>
@ -19871,12 +19899,12 @@ parent Control after spacing and size constraints have been applied.
<dt>crsHomogenousSpaceResize</dt> <dt>crsHomogenousSpaceResize</dt>
<dd> <dd>
<p> <p>
Applies a uniform number of pixels as horizontal spacing between child controls Applies a uniform number of pixels as horizontal spacing between child
on the same row. The width for controls in a given column are derived using the controls on the same row. The width for controls in a given column are derived
preferred width for the controls and any width constraints (minimum or maximum) using the preferred width for the controls and any width constraints (minimum
in the child controls. Any unused horizontal space on the Control is allocated or maximum) in the child controls. Any unused horizontal space on the Control
equally as spacing before, between, and after each column in the tabular layout is allocated equally as spacing before, between, and after each column in the
- including on the left and right edges of the Control. tabular layout - including on the left and right edges of the Control.
</p> </p>
<p> <p>
Column widths do not change when the parent Control is resized; only the Column widths do not change when the parent Control is resized; only the
@ -19886,11 +19914,11 @@ spacing between edges and columns is affected.
<dt>crsScaleChilds</dt> <dt>crsScaleChilds</dt>
<dd> <dd>
<p> <p>
Scales the width for child controls while keeping the space between them fixed. Scales the width for child controls while keeping the space between them
Children are resized so that the control widths are a ratio of their preferred fixed. Children are resized so that the control widths are a ratio of their
widths (or size constraints) relative to the client area on the parent Control. preferred widths (or size constraints) relative to the client area on the
Controls are scaled to fill the unused horizontal space. All controls in a parent Control. Controls are scaled to fill the unused horizontal space. All
given column are given the same derived width. controls in a given column are given the same derived width.
</p> </p>
</dd> </dd>
<dt> <dt>
@ -19914,10 +19942,10 @@ sizing layout algorithms.
<p> <p>
The styles in EnlargeHorizontal, EnlargeVertical, ShrinkHorizontal, and The styles in EnlargeHorizontal, EnlargeVertical, ShrinkHorizontal, and
ShrinkVertical are used when Layout is set to a value other than cclNone. The ShrinkVertical are used when Layout is set to a value other than cclNone. The
styles apply to child controls which have their Anchors set to [akLeft, akTop], styles apply to child controls which have their Anchors set to [akLeft,
Align set alNone, and are not anchored to another control using AnchorSide. Any akTop], Align set alNone, and are not anchored to another control using
control with other Anchors or Align settings cannot be displayed in the tabular AnchorSide. Any control with other Anchors or Align settings cannot be
layout. displayed in the tabular layout.
</p> </p>
<p> <p>
The child controls are positioned using the BorderSpacing for the control (and The child controls are positioned using the BorderSpacing for the control (and
@ -19965,34 +19993,31 @@ parent Control. The default value for the property is crsAnchorAligning.
<p> <p>
Child sizing styles include: Child sizing styles include:
</p> </p>
<dl> <dl>
<dt>crsAnchorAligning</dt> <dt>crsAnchorAligning</dt>
<dd> <dd>
<p> <p>
Uses a static layout based on the preferred height and size constraints for the Uses a static layout based on the preferred height and size constraints for
child controls. Child controls heights are not changed when the parent Control the child controls. Child controls heights are not changed when the parent
is resized. Control is resized.
</p> </p>
</dd> </dd>
<dt>crsScaleChilds</dt> <dt>crsScaleChilds</dt>
<dd> <dd>
<p> <p>
Scales the width for child controls while keeping the space between them fixed. Scales the width for child controls while keeping the space between them
Children are resized so that the control heights are a ratio of their preferred fixed. Children are resized so that the control heights are a ratio of their
widths (or size constraints) relative to the client area on the parent Control. preferred widths (or size constraints) relative to the client area on the
Controls are scaled to fill the unused vertical space. All controls in a parent Control. Controls are scaled to fill the unused vertical space. All
given row are given the same derived height. controls in a given row are given the same derived height.
</p> </p>
</dd> </dd>
<dt>crsHomogenousChildResize</dt> <dt>crsHomogenousChildResize</dt>
<dd> <dd>
<p> <p>
Applies a homogenous height to child controls in a given row on the tabular Applies a homogenous height to child controls in a given row on the tabular
layout. The height of child controls is expanded to fill the unused area in the layout. The height of child controls is expanded to fill the unused area in
parent Control after spacing and size constraints have been applied. the parent Control after spacing and size constraints have been applied.
</p> </p>
</dd> </dd>
@ -20000,18 +20025,17 @@ parent Control after spacing and size constraints have been applied.
<dd> <dd>
<p> <p>
Applies a uniform number of pixels as vertical spacing between child controls Applies a uniform number of pixels as vertical spacing between child controls
on the same column. The height for controls in a given column are derived using on the same column. The height for controls in a given column are derived
the preferred height for the controls and any height constraints (minimum or using the preferred height for the controls and any height constraints (
maximum) in the child controls. Any unused vertical space on the Control is minimum or maximum) in the child controls. Any unused vertical space on the
allocated equally as spacing above, between, and below each row in the tabular Control is allocated equally as spacing above, between, and below each row in
layout - including on the top and bottom edges of the Control. the tabular layout - including on the top and bottom edges of the Control.
</p> </p>
<p> <p>
Row heights do not change when the parent Control is resized; only the Row heights do not change when the parent Control is resized; only the
spacing between edges and rows is affected. spacing between edges and rows is affected.
</p> </p>
</dd> </dd>
<dt>crsSameSize</dt> <dt>crsSameSize</dt>
<dd> <dd>
<p> <p>
@ -20031,10 +20055,10 @@ sizing layout algorithms.
<p> <p>
The styles in EnlargeHorizontal, EnlargeVertical, ShrinkHorizontal, and The styles in EnlargeHorizontal, EnlargeVertical, ShrinkHorizontal, and
ShrinkVertical are used when Layout is set to a value other than cclNone. The ShrinkVertical are used when Layout is set to a value other than cclNone. The
styles apply to child controls which have their Anchors set to [akLeft, akTop], styles apply to child controls which have their Anchors set to [akLeft,
Align set alNone, and are not anchored to another control using AnchorSide. Any akTop], Align set alNone, and are not anchored to another control using
control with other Anchors or Align settings cannot be displayed in the tabular AnchorSide. Any control with other Anchors or Align settings cannot be
layout. displayed in the tabular layout.
</p> </p>
<p> <p>
The child controls are positioned using the BorderSpacing for the control (and The child controls are positioned using the BorderSpacing for the control (and
@ -20101,8 +20125,8 @@ arranged into rows and / or columns.
<p> <p>
<var>Layout</var> is a <var>TControlChildrenLayout</var> property which <var>Layout</var> is a <var>TControlChildrenLayout</var> property which
indicates the layout behavior for adjacent controls in the parent Control. indicates the layout behavior for adjacent controls in the parent Control.
Layout is used when methods in TControl descendants need to arrange their child Layout is used when methods in TControl descendants need to arrange their
controls into columns or rows. child controls into columns or rows.
</p> </p>
<p> <p>
The default value for the property is cclNone, and indicates that a layout The default value for the property is cclNone, and indicates that a layout
@ -20240,12 +20264,12 @@ parent Control after spacing and size constraints have been applied.
<dt>crsHomogenousSpaceResize</dt> <dt>crsHomogenousSpaceResize</dt>
<dd> <dd>
<p> <p>
Applies a uniform number of pixels as horizontal spacing between child controls Applies a uniform number of pixels as horizontal spacing between child
on the same row. The width for controls in a given column are derived using the controls on the same row. The width for controls in a given column are derived
preferred width for the controls and any width constraints (minimum or maximum) using the preferred width for the controls and any width constraints (minimum
in the child controls. Any unused horizontal space on the Control is allocated or maximum) in the child controls. Any unused horizontal space on the Control
equally as spacing before, between, and after each column in the tabular layout is allocated equally as spacing before, between, and after each column in the
- including on the left and right edges of the Control. tabular layout - including on the left and right edges of the Control.
</p> </p>
<p> <p>
Column widths do not change when the parent Control is resized; only the Column widths do not change when the parent Control is resized; only the
@ -20255,11 +20279,11 @@ spacing between edges and columns is affected.
<dt>crsScaleChilds</dt> <dt>crsScaleChilds</dt>
<dd> <dd>
<p> <p>
Scales the width for child controls while keeping the space between them fixed. Scales the width for child controls while keeping the space between them
Children are resized so that the control widths are a ratio of their preferred fixed. Children are resized so that the control widths are a ratio of their
widths (or size constraints) relative to the client area on the parent Control. preferred widths (or size constraints) relative to the client area on the
Controls are scaled to fill the client width in the parent Control. All parent Control. Controls are scaled to fill the client width in the parent
controls in a given column are given the same derived width. Control. All controls in a given column are given the same derived width.
</p> </p>
</dd> </dd>
<dt> <dt>
@ -20283,10 +20307,10 @@ sizing layout algorithms.
<p> <p>
The styles in EnlargeHorizontal, EnlargeVertical, ShrinkHorizontal, and The styles in EnlargeHorizontal, EnlargeVertical, ShrinkHorizontal, and
ShrinkVertical are used when Layout is set to a value other than cclNone. The ShrinkVertical are used when Layout is set to a value other than cclNone. The
styles apply to child controls which have their Anchors set to [akLeft, akTop], styles apply to child controls which have their Anchors set to [akLeft,
Align set alNone, and are not anchored to another control using AnchorSide. Any akTop], Align set alNone, and are not anchored to another control using
control with other Anchors or Align settings cannot be displayed in the tabular AnchorSide. Any control with other Anchors or Align settings cannot be
layout. displayed in the tabular layout.
</p> </p>
<p> <p>
The child controls are positioned using the BorderSpacing for the control (and The child controls are positioned using the BorderSpacing for the control (and
@ -20294,9 +20318,10 @@ its parent control) and the spacing values in LeftRightSpacing and
HorizontalSpacing. HorizontalSpacing.
</p> </p>
<p> <p>
Setting a new value for ShrinkHorizontal causes the Change method to be called. Setting a new value for ShrinkHorizontal causes the Change method to be
This invalidate the preferred sizes for the child controls, and causes them to called. This invalidate the preferred sizes for the child controls, and causes
be realigned. The OnChange event handler is also signalled (when assigned). them to be realigned. The OnChange event handler is also signalled (when
assigned).
</p> </p>
<p> <p>
Use EnlargeHorizontal to specify the child sizing style applied when control Use EnlargeHorizontal to specify the child sizing style applied when control
@ -20339,23 +20364,21 @@ Child sizing styles include:
<dt>crsAnchorAligning</dt> <dt>crsAnchorAligning</dt>
<dd> <dd>
<p> <p>
Uses a static layout based on the preferred height and size constraints for the Uses a static layout based on the preferred height and size constraints for
child controls. Child controls heights are not changed when the parent Control the child controls. Child controls heights are not changed when the parent
is resized. Control is resized.
</p> </p>
</dd> </dd>
<dt>crsScaleChilds</dt> <dt>crsScaleChilds</dt>
<dd> <dd>
<p> <p>
Scales the width for child controls while keeping the space between them fixed. Scales the width for child controls while keeping the space between them
Children are resized so that the control heights are a ratio of their preferred fixed. Children are resized so that the control heights are a ratio of their
heights (or size constraints) relative to the client area on the parent preferred heights (or size constraints) relative to the client area on the
Control. Controls are scaled to fill the client height in the parent control. parent Control. Controls are scaled to fill the client height in the parent
All controls in a given row are given the same derived height. control. All controls in a given row are given the same derived height.
</p> </p>
</dd> </dd>
<dt>crsHomogenousChildResize</dt> <dt>crsHomogenousChildResize</dt>
<dd> <dd>
<p> <p>
@ -20364,23 +20387,21 @@ layout. The height of child controls is reduced to fill the client height in
the parent Control after spacing and size constraints have been applied. the parent Control after spacing and size constraints have been applied.
</p> </p>
</dd> </dd>
<dt>crsHomogenousSpaceResize</dt> <dt>crsHomogenousSpaceResize</dt>
<dd> <dd>
<p> <p>
Applies a uniform number of pixels as vertical spacing between child controls Applies a uniform number of pixels as vertical spacing between child controls
in the same column. The height for controls in a given column are derived using in the same column. The height for controls in a given column are derived
the preferred height for the controls and any height constraints (minimum or using the preferred height for the controls and any height constraints
maximum) in the child controls. Any unused vertical space on the Control is (minimum or maximum) in the child controls. Any unused vertical space on the
allocated equally as spacing above, between, and below each row in the tabular Control is allocated equally as spacing above, between, and below each row in
layout - including on the top and bottom edges of the Control. the tabular layout - including on the top and bottom edges of the Control.
</p> </p>
<p> <p>
Row heights do not change when the parent Control is resized; only the Row heights do not change when the parent Control is resized; only the
spacing between edges and rows is affected. spacing between edges and rows is affected.
</p> </p>
</dd> </dd>
<dt>crsSameSize</dt> <dt>crsSameSize</dt>
<dd> <dd>
<p> <p>
@ -20400,10 +20421,10 @@ sizing layout algorithms.
<p> <p>
The styles in EnlargeHorizontal, EnlargeVertical, ShrinkHorizontal, and The styles in EnlargeHorizontal, EnlargeVertical, ShrinkHorizontal, and
ShrinkVertical are used when Layout is set to a value other than cclNone. The ShrinkVertical are used when Layout is set to a value other than cclNone. The
styles apply to child controls which have their Anchors set to [akLeft, akTop], styles apply to child controls which have their Anchors set to [akLeft,
Align set alNone, and are not anchored to another control using AnchorSide. Any akTop], Align set alNone, and are not anchored to another control using
control with other Anchors or Align settings cannot be displayed in the tabular AnchorSide. Any control with other Anchors or Align settings cannot be
layout. displayed in the tabular layout.
</p> </p>
<p> <p>
The child controls are positioned using the BorderSpacing for the control (and The child controls are positioned using the BorderSpacing for the control (and
@ -20460,8 +20481,8 @@ TopBottomSpacing also affects control alignment when using Anchors for
positioning child controls on a parent. positioning child controls on a parent.
</p> </p>
<p> <p>
Use VerticalSpacing to reserve space between vertically adjacent child controls Use VerticalSpacing to reserve space between vertically adjacent child
in a column on the tabular Layout. controls in a column on the tabular Layout.
</p> </p>
<p> <p>
Use LeftRightSpacing to reserved space on the left and right edges of the Use LeftRightSpacing to reserved space on the left and right edges of the
@ -20492,8 +20513,8 @@ value for the property causes the Change method to be called to resize/realign
child controls. The OnChange event handler is also signalled (when assigned). child controls. The OnChange event handler is also signalled (when assigned).
</p> </p>
<p> <p>
VerticalSpacing also affects control spacing when using Anchors for positioning VerticalSpacing also affects control spacing when using Anchors for
child controls on a parent. positioning child controls on a parent.
</p> </p>
<p> <p>
Use HorizontalSpacing to set the space reserved between horizontally adjacent Use HorizontalSpacing to set the space reserved between horizontally adjacent
@ -24650,7 +24671,9 @@ Provides a grid (table) layout for the children of this control.
<p> <p>
<var>ChildSizing</var> provides access to the <var>TControlChildSizing</var> <var>ChildSizing</var> provides access to the <var>TControlChildSizing</var>
properties and methods of the control. properties and methods of the control.
Those manage how the child-controls are resized and placed into a grid layout.<br/> Those manage how the child-controls are resized and placed into a grid layout.
</p>
<p>
ChildSizing is an alternative to using Anchors and Align properties to ChildSizing is an alternative to using Anchors and Align properties to
position and resize child controls. position and resize child controls.
</p> </p>
@ -24661,11 +24684,13 @@ in which child controls are aligned. This affects how
TControlChildSizing.ControlsPerLine determines the size of grid setting TControlChildSizing.ControlsPerLine determines the size of grid setting
either the amount of columns or rows. either the amount of columns or rows.
The default is cclNone and disables the grid layout. The default is cclNone and disables the grid layout.
<br/> </p>
<p>
Choose a <link id="TChildControlResizeStyle">resize algorithm</link> for Choose a <link id="TChildControlResizeStyle">resize algorithm</link> for
shrinking or growing children's width and height. This does nothing shrinking or growing children's width and height. This does nothing
when cclNone is chosen. when cclNone is chosen.
<br/> </p>
<p>
Spacing between and around the cells of the grid can be set as part of the Spacing between and around the cells of the grid can be set as part of the
TControlChildSizing. It can also be set by using the BorderSpacing of TControlChildSizing. It can also be set by using the BorderSpacing of
individual child-controls. The TControlChildSizing properties for spacing individual child-controls. The TControlChildSizing properties for spacing
@ -24699,12 +24724,12 @@ Behavior modified in LCL version 3.4 to use the adjusted client rectangle when
controls are aligned. controls are aligned.
</version> </version>
<version> <version>
Implementation refactored in LCL version 4.0. This may result in behaviour that Implementation refactored in LCL version 4.0. This may result in behaviour
differs from previous LCL versions.<br/> that differs from previous LCL versions. Children with Constraints.MaxWidth /
Children with Constraints.MaxWidth/MaxHeight now limit the size of their column/row. MaxHeight now limit the size of their column/row. In version 4.2 that was
In version 4.2 that was fixed to only apply for children with Constraints.MaxWidth/MaxHeight fixed to only apply for children with Constraints.MaxWidth/MaxHeight and
and BorderSpacing.CellAlignHorizontal/CellAlignVertical = ccaFill. Values other than ccaFill BorderSpacing.CellAlignHorizontal/CellAlignVertical = ccaFill. Values other
can be used to get the layout behaviour of version 3 than ccaFill can be used to get the layout behaviour of version 3.
</version> </version>
<seealso> <seealso>
<link id="TWinControl.ControlCount"/> <link id="TWinControl.ControlCount"/>