Most controls fall into the TWinControl/ TWidgetControl branch. Unlike graphic controls, controls in this branch have their own associated window or widget. Because of this, they are sometimes called windowed controls controls. Windowed controls all descend from TWinControl, which descends from the windows-only version of TControl.
Controls in the TWinControl/TWidgetControl branch:
- Can receive focus while an application is running, which means they can receive keyboard input from the application user. In comparison, graphic controls can only display data and respond to the mouse.
- Can be the parent of one or more child controls.
- Have a handle, or unique identifier, that allows them to access the underlying window or widget.
The
TWinControl/TWidgetControl branch includes both controls that are drawn automatically (such as
TEdit,
TListBox,
TComboBox,
TPageControl, and so on) and custom controls that do not correspond directly to a single underlying Windows control or widget. Controls in this latter category, which includes classes like
TStringGrid and
TDBNavigator, must handle the details of painting themselves. Because of this, they descend from
TCustomControl, which introduces a
Canvas property on which they can paint themselves.