Помощь - Поиск - Пользователи - Календарь
Полная версия: Событие: Отведение мышки
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
Koresh
Каким образом можно реализовать для Image'а например?
volvo
Наследуйся от стандартного TImage и лови CM_MOUSELEAVE:

Type
TMyImage = class(TImage)

procedure CMMouseLeave(var msg: TMessage); message CM_MOUSELEAVE;

end;

procedure TMyImage.CMMouseLeave(var msg: TMessage);
begin
inherited;
{ действия на покидание мышью области компонента }
end;
Koresh
Цитата
[Error] Unit1.pas(11): Unsatisfied forward or external declaration: 'TMyImage.CMMouseLeave'

Что-то ругается...
volvo
Ну, так ты саму процедуру-то добавил? Компилятор ее не видит...
Koresh
А если у меня не одна картинка... и при отведении с каждой, нужно, чтобы выполнялись разные процедуры.
Для остальных еще создавать классы? Или как?
volvo
А сделать в TMyImage поле процедурного типа и при инициализации формы прописывать в каждый экземпляр ту процедуру, которая нужна именно для него нельзя?

type
T = procedure;
TMyImage = class(TImage)

procedure CMMouseLeave(var msg: TMessage); message CM_MOUSELEAVE;

private
p: T;
end;

// ...

procedure p_1;
begin
ShowMessage('first:: out');
end;
procedure p_2;
begin
ShowMessage('second:: out');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Image1.p := p_1;
Image2.p := p_2;
end;

?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.