Внешний вид элемента управления
Выравнивание элемента управления
Для выравнивания компонента в рабочей области его владельца (обычно это форма) применяется свойство
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).