Внешний вид элемента управления

Выравнивание элемента управления

Для выравнивания компонента в рабочей области его владельца (обычно это форма) применяется свойство

property Align: TAlign;

Тип TAlign объявлен следующим образом:

type TAlign = (alNone, alTop, alBottom, alLeft, alRight, alClient);

При значении alNone выравнивание отсутствует. При следующих четырех значениях выравнивание осуществляется по соответствующей стороне. Значение alclient приводит к тому, что элемент управления изменяет свои размеры до размеров рабочей области владельца.

Свойство

property Anchors: TAnchors;

type TAnchors = set of TAnchorKind;

type TAnchorKind = (akTop, akLeft, akRight, akBottom);

обеспечивает фиксацию элемента управления по сторонам владельца. "Якорь" можно установить по одной, двум, трем или четырем сторонам. При задании якоря по любой стороне расстояние между стороной и элементом управления сохраняется неизменным. Комбинируя якоря для сторон, можно добиться различных вариантов поведения компонента при изменении размеров владельца.

Если по вертикали или горизонтали якорь не установлен вообще, то при изменении размеров владельца компонент остается на том же месте с учетом изменившегося размера.

Если по вертикали или горизонтали установлены оба якоря, то при изменении размеров владельца размер элемента управления изменяется таким образом, чтобы расстояния до сторон владельца остатись неизменными.

Свойство

property AutoSize: Boolean;

обеспечивает изменение размеров компонента в соответствии с размерами его содержимого (текста, изображения, списка, иерархического дерева и т. д.).

Для определения цвета компонента используется свойство

property Color: TColor;

При нахождении указателя мыши над компонентом его изображение может изменяться в соответствии со значением свойства

property Cursor: TCursor;

Для текста компонента шрифт обычно задается свойством

property Font: TFont;

Сложный класс TFont, задающий все характеристики шрифта, подробно рассматривается в гл. 10.

Свойство

property DesktopFont: Boolean;

определяет возможность использования шрифта для отображения, который применяется ОС для представления текста в значках.

Сам текст задается свойством

type TCaption = string; property Text: TCaption;

Длину текста можно определить при помощи функции

function GetTextLen: Integer;

Она возвращает число символов в тексте.

Элемент управления можно сделать видимым или невидимым. Для этого применяется свойство

property Visible: Boolean;

Этих же результатов можно достичь методами show (компонент видим) и Hide (компонент невидим).

Опубликованное свойство

property Hint: string;

содержит текст ярлыка — однострочной подсказки, которая появляется в маленькой рамке при остановке мыши на элементе управления.

Для управления ярлыком используется свойство

property ShowHint: Boolean;

При значении True ярлык начинает работать, при значении False ярлык выключается.

Для каждого элемента управления можно создать собственное всплывающее меню. Ссылка на экземпляр класса TPopupMenu, инкапсулирующего такое меню, хранится в свойстве

property PopupMenu: TPopupMenu;

Текущее состояние элемента управления определяется свойством Controistate:

type TControlState = set of (csLButtonDown, csClicked, csPalette, csReadingState, csAlignmentNeeded, csFocusing, csCreating, csPaintCopy, csCustomPaint, csDestroyingHandle, csDocking,); property Controistate: TControlState;

Описание возможных состояний элемента управления представлено в табл. 2.3.

Таблица 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).