Sign in Join
FPDoc Onlineexperiment

TControl.Width property

Member of TControlpublishedIn unit Controls

The horizontal size for the control.

Declaration

pascal
property Width: Integer read FWidth write SetWidth;

Description

Width is an Integer property with the horizontal size for the control in pixels.

Setting a negative value in Width is not allowed, and the property defaults to 0 (zero). At design-time, setting Width to a value not in the range 0..9999 causes an ELayoutException to be raised (and handled in the IDE).

Setting a new value for the property causes SetBounds and ChangeBounds to be called. This ensures that the new value is in the range allowed in Constraints, and that the control is aligned on its Parent using the Anchors for the control.

A value assigned to Width is ignored when AutoSize is set to True; the control is automatically adjusted to the size needed for its aligned content.

Values in Top, Left, Width, and Height are used to calculate the display area for the control in GetClientRect. They determine the clipping rectangle used when the control is drawn on its Parent.

In the LCL, Width has the same value as ClientWidth. Derived classes (like TCustomForm or TForm) may implement a ClientWidth property that differs from Width - but in the current LCL version, they do not. This differs from the behavior in the Delphi VCL where the value in Width includes pixels used in non-client areas like the borders, frames, and scroll bars. LCL uses this approach because there is no reliable way to determine the sizes for all of the non-client areas on all of the platforms where LCL is supported. Without a reliable way, the LCL would needlessly move the forms around on the screen or resize them endlessly. In the LCL, neither Width nor ClientWidth include the non-client area on a form instance.

See also

An experiment, built from Lazarus main 2dfa93c66e of 10-22-2026. Not the official Lazarus documentation.