Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

OnMouseEnter и OnMouseLeave для всего ...


Страницы:   1 2

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]

Простым способом - нельзя, надо изголяться.
Какую задачу решаешь?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо