TSpeedButton

Наследование: TGraphicControl > TControl > TComponent > TPersistent > TObject -DESKTOP-

Кнопка используется для создания инструментальных панелей и в других случаях, когда требуется кнопка с фиксацией нажатого состояния. Имеет возможность отображения пиктограмм и может использоваться как обычная управляющая кнопка или как кнопка с фиксацией нажатого состояния. Обычно используется в качестве быстрых кнопок, дублирующих различные команды меню, и в инструментальных панелях, в которых требуется фиксация нажатого состояния.

У кнопок TSpeedButton, как и у других кнопок, имеется свойство Caption - надпись, но в этих кнопках оно обычно оставляется пустым, так как вместо надписи используется пиктограмма. Изображение на кнопке задается свойством Glyph точно так же, как для кнопок TBitBtn. И точно так же свойства Layout и Margin определяют расположение изображения, а свойство Spacing - расстояние между изображением и надписью (если, конечно, вы все-таки хотите использовать надпись на кнопке).

Особенностью кнопок TSpeedButton являются свойства GroupIndex (индекс группы), AllowAllUp (разрешение отжатого состояния всех кнопок группы) и Down (исходное состояние - нажатое). Если GroupIndex = 0, то кнопка ведет себя так же, как TButton и TBitBtn. При нажатии пользователем кнопки она погружается, а при отпускании возвращается в нормальное состояние. В этом случае свойства AllowAllUp и Down не влияют на поведение кнопки.

Если GroupIndex > 0 и AllowAllUp = True, то кнопка при щелчке пользователя на ней погружается и остается в нажатом состоянии. При повторном щелчке пользователя на кнопке она освобождается и переходит в нормальное состояние (именно для того, чтобы освобождение кнопки состоялось, необходимо задать AllowAllUp = True).

Если есть несколько кнопок, имеющих одинаковое ненулевое значение GroupIndex, то они образуют группу взаимосвязанных кнопок, из которых нажатой может быть только одна. Если одна кнопка находится в нажатом состоянии и пользователь щелкает на другой, то первая кнопка освобождается, а вторая фиксируется в нажатом состоянии. Поведение нажатой кнопки при щелчке на ней зависти от значения свойства AllowAllUp. Если оно равно True, то кнопка освободится, поскольку в этом случае возможно состояние, когда все кнопки группы отжаты. Если же AllowAllUp равно False, то щелчок на нажатой кнопке не приведет к изменению вида кнопки. Впрочем, и в этом случае, как и при любом щелчке на кнопке, возникает событие OnClick, которое может быть обработано.

Состояние кнопки во время выполнения можно определить по значению свойства Down: если значение равно True, то кнопка нажата. Во время события OnClick значение Down уже равно тому состоянию, которое примет кнопка в результате щелчка на ней.

Методы
ClickНажимает кнопку. При этом вызывается событие OnClick.
LoadGlyphFromFileЗагружает пиктограмму из файла. Наиболее предпочтительный формат файла - PNG.
LoadGlyphFromStreamЗагружает глиф из потока данных.
LoadGlyphFromStringBase64Загружает глиф из строки в кодировке BASE64. Может использоваться в расширениях, если изображения закодированы в строках.
Свойства
AllowAllUpОпределяет, можно ли одновременно отменить выбор всех быстрых кнопок.
DownОпределяет, выбрана ли кнопка.
FlatCтиль кнопки плоский/объемный.
GlyphДоступ к пиктограмме на кнопке.
GroupIndexИндекс группы, к которой относится кнопка.
LayoutПоложение пиктограммы на кнопке.
MarginПромежуток между пиктограммой и краем быстрой кнопки в пикселях.
SpacingРасстояние между пиктограммой и надписью кнопки.
TransparentОпределяет прозрачность кнопки.
События
OnPaintВызывается при отрисовке кнопки.