IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Событие: Отведение мышки
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 19
Пол: Мужской
Реальное имя: Павел

Репутация: -  0  +


Каким образом можно реализовать для Image'а например?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Наследуйся от стандартного 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;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 19
Пол: Мужской
Реальное имя: Павел

Репутация: -  0  +


Цитата
[Error] Unit1.pas(11): Unsatisfied forward or external declaration: 'TMyImage.CMMouseLeave'

Что-то ругается...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Ну, так ты саму процедуру-то добавил? Компилятор ее не видит...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 19
Пол: Мужской
Реальное имя: Павел

Репутация: -  0  +


А если у меня не одна картинка... и при отведении с каждой, нужно, чтобы выполнялись разные процедуры.
Для остальных еще создавать классы? Или как?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






А сделать в 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;

?
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.10.2020 11:36
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name