Шаг 27 - Компонент TSpeedButton

Этот компонент gif/27_1.gif (159 b) отображает стандартную иконку. Таких много в приложениях Office. Опять-таки никакой другой особой нагрузки этот компонент не несет. Файл с иконкой загружается также в свойство Glyph, как и TBitBtn. Аналогично работает и свойство NumGlyphs и другие свойства, отвечающие за отображение иконки. Даже не знаю, стоит ли этот компонент рассматривать подробно. Просто приведу пример программки, взаимодействующей с этими кнопками:

gif/27_2.gif (1940 b)

Здесь листинга даже никакого нет - просто нужно установить для кнопок одинаковые свойства GruopIndex, свойство AllowAllUp=false и свойство Down одной из кнопок true. Вот и все. Теперь кнопки будут как переключатели.

Надо сказать пару нехороших слов о предках TSpeedTButton - это TGraphicControl. Данный компонент графический, ресурсов не жрет. Это хорошо. Но, с другой стороны, он не может принимать фокус ввода. Этот, казалось бы, маловажный момент, приводит к ряду не очень хороших последствий. Во-первых, для кнопки нельзя настроить Shortcut. Без него, конечно, можно обойтись, особенно если есть главное меню, но все же. Во-вторых, к кнопке нельзя перейти клавишей Tab. Если первое исправляется через свойство Shortcut для TAction, то второе - никак. В-третьих, этот компонент не размещается на TCoolBar панели, которая приемлет на себя только производных TWinControl.

Это, в принципе, не так важно. Я просто предупреждаю Вас о неприятных моментах. Честно говоря, особенно меня раздражал последний факт, поскольку приятный стиль оформления Flat, но невозможно эту кнопочку засунуть на TCoolBar. Эта проблема решается созданием класса вида TSpeedButton, но производного от TWinControl. Но как не хочется лишнюю работу делать :) !


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Аванесов Самвел - 19.11.2001