![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
OnMouseEnter и OnMouseLeave для всего ...
TUserClass © (2008-06-07 12:02:00)Всем привет! Можно ли как-нить отлваливать OnMouseEnter и OnMouseLeave для любого объекта? Какую-нить процедурку бы забацать, в которую приходил бы в кач-ве параметра Sender : TObjеct. Никак нельзя?
TUserClass (2008-06-07 15:50:00) [1]Блин ... сейчас скачал "чужой" код тулбара и там тоже не работают hint'ы и mouse leave/enter :( что ж за напасть такая ...
Anatoly Podgoretsky (2008-06-07 15:47:00) [2]> TUserClass (07.06.2008 14:24:19) [19]
Да куда уж им до тебя.
TUserClass (2008-06-07 14:24:00) [3]Причем заметил еще одну странность. Если положить на тулбар обычный Image : TImage. Сделать ему ShowHint := true; Hint := 'Подсказка';то MSIE даже не подумает показывать подсказку. Но если после этого создать форму Form := TForm.Create (Application); Form.Show;то после показа формы главное окно MSIE становится не активным и при наведение на Imageпоявится посказка. o_O
Наверн MSIE писал такой же криворукий как и я :))
TUserClass (2008-06-07 14:16:00) [4]
> {RASkov} © (07.06.08 14:12) [17]
Эххх...а всего то надо отловить Вход/Выход мыши. Я даже представить не мог что микромягкий експлорер не даст мне сего совершить. :(((((
{RASkov} (2008-06-07 14:12:00) [5]Что-то я не внимательно ветку читал...(
Сдается мне, что ты подошел не с того конца к задаче....
Игорь Шевченко (2008-06-07 14:10:00) [6]TUserClass (07.06.08 14:09) [15]
> А вот как ему пришить обработку этого сообщения, зная только
> его HWND?
Ты сначала подумай, кто его посылать будет
TUserClass (2008-06-07 14:09:00) [7]
> Игорь Шевченко © (07.06.08 14:08) [12]
А вот как ему пришить обработку этого сообщения, зная только его HWND?
Игорь Шевченко (2008-06-07 14:09:00) [8]
> Вот глупый MSIE
Это не он глупый
TUserClass (2008-06-07 14:08:00) [9]
> {RASkov} © (07.06.08 14:05) [10]
Ах...да...я грубую ошибку сделал...надо было брать функцию базового класса....но самое интересное, что все равно НЕ РАБОТАЕТ :(
Игорь Шевченко (2008-06-07 14:08:00) [10]
> Я просто тулбар к MSIE пишу.. А этот самый собака MSIE почему
> то не передает CM_ONMOUSEENTER моему тулбару
потому что он ничего не знает про CM_MOUSEENTER
TUserClass (2008-06-07 14:06:00) [11]Я просто тулбар к MSIE пишу.. А этот самый собака MSIE почему то не передает CM_ONMOUSEENTER моему тулбару. :(
{RASkov} (2008-06-07 14:05:00) [12]> [9] TUserClass (07.06.08 14:04)
Inherited видишь?
TUserClass (2008-06-07 14:04:00) [13]
> {RASkov} © (07.06.08 14:03) [8]
Да это я знаю :) ... Просто я не весь код суда написал ... Все равно в случае выполнения procedure TNewImage.HookOnMouseEnter;должно показаться сообщение, а оно не показывается ... :(
{RASkov} (2008-06-07 14:03:00) [14]
TNewImage = class (TImage)
private
.......
FOnMouseLeave: TNotifyEvent;
FOnMouseEnter: TNotifyEvent;
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
published
.........
property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
end;
...........
procedure TNewImage.CMMouseEnter(var Message: TMessage);
begin
inherited;
if Assigned(FOnMouseEnter) then FOnMouseEnter(Self);
end;
procedure TNewImage.CMMouseLeave(var Message: TMessage);
begin
inherited;
if Assigned(FOnMouseLeave) then FOnMouseLeave(Self);
end;
TUserClass (2008-06-07 13:46:00) [15]Вот глупый MSIE - он не дает мне отловить CM_MOUSEENTER и CM_MOUSELEAVE..Как быть ???
Вот такая фишка не прокатывает:
TNewImage = class (TImage)
private
EOnMouseEnter : TNotifyEvent;
procedure HookOnMouseEnter (var Message : TMessage); message CM_MOUSEENTER;
published
property OnMouseEnter : TNotifyEvent read EOnMouseEnter write EOnMouseEnter;
end;
....
procedure TNewImage.HookOnMouseEnter;
begin
ShowMessage ('s');
end;
Ega23 (2008-06-07 12:19:00) [16]
> умаю обойдусь только к TImage...
Тогда - [1]
TUserClass (2008-06-07 12:16:00) [17]Ну впринципи, проглядев прогу я понял - не ко всем объектам впринципи - думаю обойдусь только к TImage... Наверн надо наследника создавать...Щас попробую, модет полуЦЦа :)
Ega23 (2008-06-07 12:12:00) [18]
> можно. обрабатывать CM_MOUSEENTER и CM_MOUSELEAVE
Ему "для всего" надо. А это - переписывать VCL :)
Рамиль (2008-06-07 12:11:00) [19]Забацай процедурку и зацепи ко всем объектам. В чем проблема?
Ega23 (2008-06-07 12:11:00) [20]Простым способом - нельзя, надо изголяться.
Какую задачу решаешь?