ПЕ
Павел Евстифеев

On Mouse Move, HELP!!!

Здравствуйте ребята помогите пожалуйста, хочу сделать кнопку в Делфи как в 7-рке обрабатываю событие onMouseMove так вот нужно что бы при наведении мышки кнопка "загоралась" тоесть менялась картинка, а когда мышка уходит с мышки кнопка возвращалась в прежнее состояние.

Ел
Елена

Если память мне не врет, то дельфи как и vb не имеют события over (покидание мышой контрола) . Поэтому, сам пишешь класс, который постоянно опрашивает какой контрол сейчас под мышью - при заходе на контрол ставишь флаг, при уходе если флаг данного контрола установлен - то значит с него только что ушли вот и меняй картинку себе по этому флагу.

Ев
Евгений

Самый простой способ вот такой:

ОХ
Ольга Хайруллина

Через OnMouseMove не получится, потому что это событие не фиксирует выход указателя мыши за пределы компонента.
Поскольку отрисовка картинки на кнопке - это здесь задача лишняя, покажу, как сделать то, что требуется, с тем лишь исключениям, что "загорание" кнопки будет выглядеть только "ожирнением" шрифта подписи.
Надо объявить класс, например, TMyButton так
TMyButton = class(TButton)
private
procedure CNMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CNMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
end;
Реализация методов будет следующая:
procedure TMyButton.CNMouseEnter(var Message: TMessage);
begin
Font.Style := [fsBold];
end;

procedure TMyButton.CNMouseLeave(var Message: TMessage);
begin
Font.Style := [];
end;
Если компонент не регистрировать, то его можно будет использовать только в рантайме, например, так:
procedure TForm1.FormCreate(Sender: TObject);
var
TButton1: TMyButton;
begin
TButton1 := TMyButton.Create(Form1);
TButton1.Caption := 'hi';
TButton1.Parent := Form1;
TButton1.Width := 100;
TButton1.Height := 25;
TButton1.Left := 50;
TButton1.Top := 50;
end;
Можно пойти дальше и сделать компонент, доступный в дизайнере и реализующий всё-таки "загорание" сменой картинки.
---
Уважайте время других участников Ответов. Не забывайте отмечать лучшие ответы.

Похожие вопросы
программирование (HELP)
rundll32.exe mouse,disable и keyboard,disable
помогите найти песню из видео Move start up (Rostov on Don 2012 parkour, workout)
Oscar Mouse Editor A4Tech что с ним не так?
помогите плиз с windows move maker!!! или с другим видеоредактором
help для 3ds max7? где можно скачать русский help для 3ds max7?
Народ помогите пожалуйста с wordpressom ставлю фон на сайт ну он отображается не до конца страницы help! help! help!
Программисты, help!!
Игры для PS Move Подскажите игры где нужен Ps Move
не работает мышка mouse wireless optical mouse ms 585