СообЧа > База Знаний > Программирование > Delphi

Вопрос

Как при наведении курсора на кнопку менять ее цвет?

Ответ

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;

Из конференции Delphi



Copyright © 2000-2004 Сообщество Чайников
Контактная информация