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