Класс TButtonGadget
Реквизиты типа командных кнопок TButtonGadget - это единственный тип реквизитов, с которым пользователь может непосредственно взаимодействовать. Управляющие элементы реквизитов также обеспечивают получение данных от пользователя, но делают это через класс управляющего элемента. Реквизит в этом случае действует как посредник между управляющим элементом и окном реквизитов.
Кнопка-реквизит имеет три состояния: вверх, вниз и промежуточное. Кроме того, при нажатии во всех трех состояниях кнопка может подсвечиваться.
Существует три базовых типа кнопок-реквизитов, команд реквизитов и установки реквизитов. Установка реквизитов можете быть
исключающей (как у кнопок с зависимой фиксацией) или неисключающей (как у кнопок с независимой фиксацией). Команды могут находиться только в "верхнем" состоянии. Установки могут иметь все три состояния.
После нажатия реквизита он перехватывает перемещения "мыши".
Когда "мышь" перемещается вне ограничивающего прямоугольника реквизита без освобождения ее левой кнопки, подсветка отменяется, но
перемещения "мыши" для реквизита все равно отслеживаются. Если
"мышь" без освобождения кнопки снова перемещается внутрь ограничивающего прямоугольника реквизита, он снова подсвечивается. Если
левая кнопка "мыши" освобождается, перемещения "мыши" больше не
перехватываются. Если курсор при отпущенной кнопке позиционируется внутрь ограничивающего прямоугольника, то идентификатор реквизита передается окну реквизита в качестве командного сообщения.
В конструкторе TButtonGadget задаются идентификатор ресурса
битового массива, выводимого в кнопке (размер которого определяется размерами кнопки), идентификатор реквизита (используется в
качестве команды при его нажатии), тип реквизита (командный, исключающий или не исключающий), разрешение реквизита, состояние
реквизита, повтор (повтор кнопки при удерживании ее в нажатом
состоянии).
Функция ~TBurronGadget удаляет ресурсы битового массива и
занимаемую строкой память.
Для доступа к кнопке-реквизиту вы можете использовать ряд
функций-элементов. Эти функции позволяют вам устанавливать состояние реквизита (SetButtonState), получать его (GetButtonState), и
получать тип кнопки-реквизита (GetButtonType). Модифицировать вид
кнопки-реквизита и ее стиль можно с помощью функций SetNotchCorners и SetShadowStyle.
TButtonGadget переопределяет функцию CommandEnabled TGadget.
Она инициализирует для реквизита сообщение WM_COMMAND_ENABLE.
TButtonGadget реализует функцию SysColorChange, так что битовые
массивы отслеживают системные цвета. Изменение системных цветов
отражается на новой кнопке-реквизите.