Предлагаю вашему вниманию самописный и очень простенький компонент
TImageButton.
TImageButton. - кнопка на основе 3х изображений с поддержкой прозрачности. Класс наследуется от TCustomImage и представляет собой
по идее TImage, но уже с 4 Picture.. Один радной из TCustomImage и 3 наших для картинок.
Компонент может работать в двух режимах:
1 - как кнопка (
CheckBoxStyle=False) по умолчанию
в этом режиме
FMEnterPicture : TPicture; //Картинка, которую будет видно при наведении мышки
FMLDownPicture : TPicture; //Картинка, которую будет видно при нажатии л.к.
FMLeavePicture : TPicture; //Картинка, которую будет видно при выхода мышки из области компонента и когда Enabled=False
2 - Рижим переключателя (
CheckBoxStyle=True) в этом режиме:
Кнопка играет роль CheckBox-a
в этом режиме
FMEnterPicture : TPicture; //Картинка, которая сообщает что Checked=False;
FMLDownPicture : TPicture; //Картинка, которая сообщает что Checked=True;
FMLeavePicture : TPicture; //Картинка, которую будет видно когда Enabled=False
так же в этом режиме добавлено событие OnChange :TNotifyEvent, которое происходит при переключении Checked.
Делалось для более красивого и быстрого оформления About форм. можно сделать что-то типа иконки вызова Дом страницы как это сделано в CCleaner и т.п.
Почему сделано именно на трех разных Picture, а не через ImageList. Да фиг его знает.... Ну если вам это нужно для увеличения скорости можно и переписать.... Возможно я сам когда - нибудь это осилю
Пример About формы. (Кнопки не активны)

А тут уже при наведении указателя мышки на иконку:

У вас нет необходимых прав для просмотра вложений в этом сообщении.