Шаг 3.
Вкладка Additional. Компонент TSpeedButton

    На этом шаге мы рассмотрим компонентTSpeedButton.

    Компонент TSpeedButton (Кнопка быстрого доступа) во многом подобен кнопкам и может использоваться для выбора команд или режимов. При значении False свойства AllowAllUp кнопка быстрого доступа может использоваться как обычная кнопка. Но чаще всего кнопки быстрого доступа используются группой, при этом работа кнопок подобна работе переключателей, т.е. каждая кнопка может оставаться в одном из двух фиксированных положений (нажата, отжата). При этом нажатие одной из кнопок приводит к изменению состояния других кнопок на отжатое, т.е. нажата может быть только одна кнопка. Для использования кнопок в группе необходимо для всех них установить одинаковое значение свойства GroupIndex. Если для какой-либо кнопки свойство GroupIndex имеет значение 0, то это означает, что кнопка не относится ни к одной из групп.

    Все возможные состояния для кнопки быстрого вызова показаны на рис.1., где для первых трех кнопок свойство AllowAllUp имеет значение True, а для четвертой кнопки - значение False. Значение свойства GroupIndex для первых трех кнопок равно 1 (оно устанавливается автоматически, так как кнопки объединены в групповом блоке), а для четвертой кнопки значение равно 0. То есть в данном случае четвертая кнопка будет работать как обычная кнопка и не будет фиксироваться в нажатом состоянии. Если необходимо, чтобы кнопка фиксировалась, присвойте ей уникальное значение свойства GroupIndex.


Рис.1. Четыре возможных состояния для кнопки быстрого вызова

    Состояние кнопки оценивается по значению свойства Down. Значение True этого свойства говорит о нажатом состоянии. Наиболее часто кнопки быстрого вызова используются для создания панелей инструментов.

    Для кнопки TSpeedButton предусмотрено событие OnDblClick, которое возникает при двойном щелчке на утопленной кнопке.

    Можно сделать вывод: кнопки TSpeedButton отличаются от кнопок TBitBtn тремя обстоятельствами: во-первых, они могут фиксироваться в утопленном состоянии, во-вторых, они не могут закрыть модальное окно, в третьих, они не могут быть кнопками, выбранными по умолчанию. Во всем остальном они повторяют свойства и методы кнопок TBitBtn.

    Приведем пример: для кнопки TSpeedButton создадим обработку двойного щелчка мыши.

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

procedure TForm1.SpeedButton1DblClick(Sender: TObject);
begin
 SpeedButton1.Down:= Not SpeedButton1.Down;
end;
Текст этого примера можно взять здесь.

    На следующем шаге мы рассмотрим компонент TMaskEdit.




Предыдущий шаг Содержание Следующий шаг