Меню Новости Программы Статьи Форум Контакты

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Статьи
 

СтатьиПрограммированиеDelphi

 

Альтернатива кнопке в Delphi

Автор: Blacksus

Вам когда-нибудь хотелось сделать в своей программе кнопку, которая при нажатии не просто тупо сдвигалась бы на пару пикселей от своего положения, как стандартные кнопки, а меняла свою форму, размеры, цвет, рисунок и прочее? Если нет, то Вам не следует читать эту статью =) , а для тех кому все-таки приходила такая мысль в голову я предложу одно из возможных решений, основанное на использовании компонента TImage.

Итак, что же нам понадобится для создания нашей кнопки? В данной статье мы рассмотрм пример, который содержит в себе 3 кнопки и три их состояния: активная, не активная и нажатая. Поэтому понадобятся 9 компонентов TImage и соответственно 9 рисунков. Назовем компоненты следующим образом: картинка активной кнопки Play - iPlayUp, активной кнопки Stop - iStopUp, активной кнопки Pause- iPauseUp, картинка не активной кнопки Play - iPlayDisable, не активной кнопки Stop - iStopDisable, не активной кнопки Pause- iPauseDisable, картинка нажатой кнопки Play - iPlayDown, нажатой кнопки Stop - iStopDown, нажатой кнопки Pause- iPauseDown.

Нужно назначить уровни видимости картинкам таким образом, чтобы нажатые кнопки находились под активными, а активные под не активными. Для этого нужно нажатые кнопки поместить на задний план, а не активные на передний, как это показано на рисунке 1.

Рисунок 1

После этого все кнопки нужно поместить друг над другом, как показано на рисунке 2.

Рисунок 2

Для кнопки iPlayDisable свойство Visible нужно установить в False. Далее рассмотрим несколько функций для обработки нажатий на кнопку.

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

Рисунок 3

Вот эти самые процедуры:

Далее следуют еще 3 процедуры, которые будут выполняться при щелчке на активные кнопки.

Процедура щелчка на картинку iPauseUp:

Процедура щелчка на картинку iPlayUp:

Процедура щелчка на картинку iStopUp:

Думаю, что ничего объяснять в этих процедурах не нужно, все предельно просто, при щелчке на определенную картинку одни картинки скрываются, другие исчезают, за счет этого и достигается эффект щелчка по кнопке. Например при наведении можно немного осветлять картинку.

При желании так же можно сделать реакцию кнопки на наведение курсора мыши и двойной щелчок.

Исходный код примера можно скачать тут, а программу тут.

   

Сайт создан в системе uCoz