Теперь мы попробуем создать пиктограмму для кнопки. Такие кнопки, как SpeedButton и BitBtn, могут воспринимать пиктограммы, загружаемые в их свойство Gliph. Одно изображение пиктограммы имеет размер 16×16. Но в одном файле может содержаться до четырех изображений такого размера. Самое левое соответствует отжатой кнопке. Второе слева соответствует недоступной кнопке, когда ее свойство Enabled равно false. Третье слева изображение используется при нажатии пользователя на кнопку при ее включении. Четвертое слева изображение используется в кнопках с фиксацией (в SpeedButton) для изображения кнопки в нажатом состоянии.
Давайте сделаем пиктограмму по полной программе — на 4 изображения. Создайте новый файл битовой матрицы (File | New | Bitmap File (.bmp)) и в открывшемся окне (рис. 3б) задаете размер 64×16. Разбейте изображение на 4 квадрата, разделенных белыми рамками в один пиксель (рис. 4а), и закрасьте их в последовательности слева направо красным, серым, желтым и зеленым цветами.
Рис. 4а. Создание пиктограммы для кнопки Рис.4б. Использование пиктограмм
При создании файла пиктограмм для кнопок надо иметь в виду, что левый нижний пиксель задает цвет «прозрачности», т.е. цвет, который будет заменяться цветом поверхности кнопки. Поэтому, если вы, например, просто закрасите первый квадрат, не задав ему рамку, то он не будет виден на кнопке.
Сохраните созданный файл и постройте простое приложение, чтобы посмотреть ваши пиктограммы в работе. Перенесите на форму (рис. 4б) три кнопки: SpeedButton, BitBtn и Button. В свойство Gliph кнопок SpeedButton и BitBtn загрузите ваш файл пиктограмм. В свойстве Caption кнопки BitBtn задайте какую-нибудь надпись, например «BitBtn». При этом вы сможете увидеть, что в свойствах кнопок NumGliphs становится равным 4. Поварьируйте свойствами Margin и Spacing кнопок, чтобы получить симметричное размещение пиктограмм и надписей. Для кнопки SpeedButton установите свойств Grouplndex равным 1, а свойство AllowAHUp в true. В обработчик щелчка кнопки Button вставьте код:
BitBtn2->Enabled = ! BitBtn2->Enabled; SpeedButton2->Enabled = ! SpeedButton2->Enabled;
который будет переключать свойство доступности кнопок с пиктограммами. Теперь выполните приложение и посмотрите, как будут меняться цвета кнопок при различных манипуляциях с ними. В отжатом состоянии пиктограммы будут красными. В момент нажатия они окрашиваются в желтый цвет. У нажатой кнопки SpeedButton цвет пиктограммы будет зеленым. А в недоступных кнопках цвет пиктограмм будет серым.
