Внешний вид элемента управления. Связь с родительским элементом управления.
Таблица 2.3. Возможные состояния элемента управления.
Состояние | Описание |
---|---|
csLButtonDown | Левая кнопка мыши нажата, но еще не отпущена. Используется для реализации события OnMouseDown |
csClicked | Левая кнопка мыши нажата, но еще не отпущена. Используется для реализации события OnClick |
csPalette | Состояние соответствует режиму изменения палитры. Это реакция на сообщение WM_PALETTCHANGED |
csReadingState | Осуществляется чтение значений свойств из потока (см. табл. 5.1) |
csAlignmentNeeded | Осуществляется выравнивание компонента |
csFocusing | Элемент управления получает фокус |
csCreating | Элемент управления и его дочерние элементы создаются |
csPaintCopy | Отрисовывается копия элемента управления |
csCustomPaint | Элемент управления выполняет нестандартные операции отрисовки, заданные разработчиком |
csDestroyingHandle | Указатель на объект элемента управления уничтожается |
csDocking | Элемент управления находится в режиме присоединения |
В зависимости от совокупности установленных свойств, элемент управления может соответствовать одному из возможных стилей, который задается свойством:
type TControlStyle = set of (csAcceptsControls, csCaptureMouse, csDesignlnteractive, csClickEvents, csFramed, csSetCaption, csOpaque, csDoubleClicks, csFixedWidth, csFixedHeight, csNoDesignVisible, csReplicatable, csNoStdEvents, csDisplayDraglmage, csReflector, csActionClient, csMenuEvents); property ControlStyle: TControlStyle;
Доступность элемента управления в целом определяется свойством:
property Enabled: Boolean;
При значении True элемент управления полностью работоспособен. При значении False элемент управления неактивен и отображается серым цветом.
Для получения контекста устройства нос элемента управления используется метод:
function GetDeviceContext(var WindowHandle: HWnd): HDC; virtual;
Набор свойств и методов класса TwinControl обеспечивает функционирование механизма перетаскивания (Drag-and-Drop) и механизма присоединения (Drag-and-Dock).
Связь с родительским элементом управления
Механизм связывания визуального компонента с родительским компонентом (владельцем) позволяет автоматически задавать для нового элемента управления некоторые свойства, отвечающие за его внешний вид (см. выше). В результате все дочерние элементы управления для одного родительского (формы, панели) будут выглядеть одинаково оформленными.
Родительский компонент задается свойством:
property Parent: TWinControl;
Для каждого дочернего элемента управления можно задать значения нескольких свойств:
property ParentBiDiMode: Boolean; property ParentColor: Boolean; property ParentFont: Boolean; property ParentShowHint: Boolean;
Каждое из них управляет одной характеристикой визуализации элемента. Метод:
function HasParent: Boolean; override;
Используется для того, чтобы определить, имеется ли у компонента владелец вообще.
В классе TControl впервые появляются методы-обработчики событий, которые обеспечивают передачу в элемент действия мыши, присоединение и перетаскивание.