Погуглил тут немного, и оказалось, что MS в принципе не позволяет менять цвет кнопки в API. Некоторые изворачиваются, создают новый класс на основе TButton с канвой. Вот http://delphi-faq.zoxt.net/1546.htm.
Я предлагаю использовать TPanel. При желании её можно сделать похожей на кнопку, не совсем идентично, но довольно схоже.
Надо задать свойство BevelInner при проектировании в bvRaised и написать обработчики для MouseDown и MouseUp, чтобы панель вела себя как кнопка при нажатии.
| Код | void __fastcall TForm1::Panel1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { // Какбе кнопка делается вдавленой Panel1->BevelInner = bvLowered; }
|
| Код | void __fastcall TForm1::Panel1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { // Какбе кнопка делается приподнятой Panel1->BevelInner = bvRaised; }
|
Свойство Color у панели есть. Так что уже его можно ворочать как хочется методами Click, MouseEnter и MouseLeave |