Библиотека визуальных компонентов VCL и ее базовые классы

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

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

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).

 


Знаете ли Вы, что спецификация - это документ, описывающий соглашение между разработчиками и пользователями. Разработчик берется написать модуль, а пользователь соглашается не полагаться на знания о том, как именно этот модуль реализован, т.е. не предполагать ничего такого, что не было бы указано в спецификации. Такое соглашение позволяет разделить анализ реализации от собственно использования программы. Спецификации дают возможность создавать логические основы, позволяющие успешно "разделять и властвовать".

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution