Как при наведении курсора мыши на кнопку менять ее цвет?
Написал Ярослав Гасов   
13.05.2009

Share this!

type
  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    procedure FormCreate(Sender: TObject);
  private
    procedure NewBtnWindowProc(var Msg:TMessage); // Это новый обработчик
  end;

 

var
  Form1: TForm1;

implementation

{$R *.DFM}

var
  OldBtnWindowProc : TWndMethod;

procedure TForm1.NewBtnWindowProc;
begin
  case msg.Msg of
    CM_MOUSELEAVE: BitBtn1.Font.Color := clGray;
    CM_MOUSEENTER: BitBtn1.Font.Color := clBlack;
   end;
   OldBtnWindowProc(Msg);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   OldBtnWindowProc   := BitBtn1.WindowProc;
   BitBtn1.WindowProc := NewBtnWindowProc;
   BitBtn1.Perform(CM_MOUSELEAVE,0,0); // Изначально серый
end;