176       ________________________________________Глава 3

эта надпись будет иметь вид «Выполнить». И если пользователь нажмет клавиши
Alt+B, то это будет эквивалентно щелчку на кнопке.

Основное событие любой кнопки — OnClick, возникающее при щелчке на ней.
Именно в обработчике этого события записываются операторы, которые должны
выполняться при щелчке пользователя на кнопке. Помимо этого есть еще ряд со-
бытий, связанных с различными манипуляциями клавишами и кнопками мыши.
Эти события подробно рассмотрены в главе 4 в разделе 4.3.

Свойство Cancel, если его установить в true, определяет, что нажатие пользо-
вателем клавиши ESC будет эквивалентно нажатию на данную кнопку. Это свойст-
во целесообразно задавать равным true для кнопок «Отменить» в различных диа-
логовых окнах, чтобы можно было выйти из диалога нажав на эту кнопку или на-
жав клавишу ESC.

Свойство Default, если его установить в true, определяет, что нажатие пользо-
вателем клавиши ввода Enter будет эквивалентно нажатию на данную кнопку,
даже если данная кнопка в этот момент не находится в фокусе. Правда, если в мо-
мент нажатия Enter в фокусе находится другая кнопка, то все-таки сработает имен-
но кнопка в фокусе. Если у нескольких кнопок на форме свойство Default задано
равным true, то при нажатии Enter сработает та из них, которая находится раньше
в последовательности табуляции (о последовательности табуляции см. раздел 4.1.7
главы 4).

Еще одно свойство — ModalResult используется в модальных формах, кото-
рые будут рассмотрены в разделе 4.7.3. В обычных приложениях значение этого
свойства должно быть равно mrNone.

Из методов, присущих кнопкам, имеет смысл отметить один — Click. Выпол-
нение этого метода эквивалентно щелчку на кнопке, т.е. вызывает событие кнопки
OnClick. Этим можно воспользоваться, чтобы продублировать щелчок на кнопке
какими-то другими действиями пользователя. Пусть, например, вы хотите, чтобы
при нажатии пользователем клавиши с символом «С» или «С» в любой момент ра-
боты с приложением выполнялись операции, предусмотренные в обработчике со-
бытия OnClick кнопки Buttonl. Тогда надо установить у формы свойство КеуРге-
view в true (см. раздел 4.7.1 главы 4) и в обработчике события формы OnKeyPresss
написать оператор

if ((Кеу=='С')II(Кеу=='с')) Buttonl->Click();

Все сказанное выше в равной степени относится и к Button, и к BitBtn. Рас-
смотрим теперь особенности кнопки с пиктограммой BitBtn. Изображение на этой
кнопке задается свойством Glyph. При нажатии кнопки с многоточием в строке
свойства Glyph в Инспекторе Объектов вызывается окно, представленное на
рис. 3.22. Нажав в нем кнопку Load вы перейдете в обычное окно открытия файла
рисунка и можете выбрать файл битовой матрицы .bmp, содержащий желаемое
изображение. В частности, с C++Builder поставляется большое количество изобра-
жений для кнопок. Они расположены в каталоге \lmages\Buttons, а сам каталог
images при стандартной установке C++Builder 4 расположен, в каталоге \Рго-
gram Files\Common Files\Borland Shared.

После того, как вы выбрали изображение, нажмите ОК и выбранное изображе-
ние появится на вашей кнопке левее надписи.

Файл изображения для кнопки может содержать до четырех изображений
пиктограмм размера 16х16. Самое левое соответствует отжатой кнопке. Второе
слева соответствует недоступной кнопке, когда ее свойство Enabled равно false.
Третье слева изображение используется при нажатии пользователя на кнопку при
ее включении. Четвертое слева изображение используется в кнопках с фиксацией
SpeedButton, о которых будет сказано позднее, для изображения кнопки в нажа-
том состоянии. Большинство изображений для кнопок использует две пиктограм-
мы. Число пиктограмм вы можете узнать из свойства кнопки NumGlyphs, которое