Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.07.06;
Скачать: CL | DM;

Вниз

OnMouseEnter и OnMouseLeave для всего ...   Найти похожие ветки 

 
TUserClass   (2008-06-07 12:02) [0]

Всем привет! Можно ли как-нить отлваливать OnMouseEnter и OnMouseLeave для любого объекта? Какую-нить процедурку бы забацать, в которую приходил бы в кач-ве параметра Sender : TObjеct. Никак нельзя?


 
Игорь Шевченко ©   (2008-06-07 12:10) [1]

можно. обрабатывать CM_MOUSEENTER и CM_MOUSELEAVE


 
Ega23 ©   (2008-06-07 12:11) [2]

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


 
Рамиль ©   (2008-06-07 12:11) [3]

Забацай процедурку и зацепи ко всем объектам. В чем проблема?


 
Ega23 ©   (2008-06-07 12:12) [4]


> можно. обрабатывать CM_MOUSEENTER и CM_MOUSELEAVE


Ему "для всего" надо. А это - переписывать VCL  :)


 
TUserClass   (2008-06-07 12:16) [5]

Ну впринципи, проглядев прогу я понял - не ко всем объектам впринципи - думаю обойдусь только к TImage... Наверн надо наследника создавать...Щас попробую, модет полуЦЦа :)


 
Ega23 ©   (2008-06-07 12:19) [6]


> умаю обойдусь только к TImage...


Тогда - [1]


 
TUserClass   (2008-06-07 13:46) [7]

Вот глупый 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;


 
{RASkov} ©   (2008-06-07 14:03) [8]

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 14:04) [9]


> {RASkov} ©   (07.06.08 14:03) [8]


Да это я знаю :) ... Просто я не весь код суда написал ... Все равно в случае выполнения procedure TNewImage.HookOnMouseEnter; должно показаться сообщение, а оно не показывается ... :(


 
{RASkov} ©   (2008-06-07 14:05) [10]

> [9] TUserClass   (07.06.08 14:04)

Inherited видишь?


 
TUserClass   (2008-06-07 14:06) [11]

Я просто тулбар к MSIE пишу.. А этот самый собака MSIE почему то не передает CM_ONMOUSEENTER моему тулбару. :(


 
Игорь Шевченко ©   (2008-06-07 14:08) [12]


> Я просто тулбар к MSIE пишу.. А этот самый собака MSIE почему
> то не передает CM_ONMOUSEENTER моему тулбару


потому что он ничего не знает про CM_MOUSEENTER


 
TUserClass   (2008-06-07 14:08) [13]


> {RASkov} ©   (07.06.08 14:05) [10]


Ах...да...я грубую ошибку сделал...надо было брать функцию базового класса....но самое интересное, что все равно НЕ РАБОТАЕТ :(


 
Игорь Шевченко ©   (2008-06-07 14:09) [14]


> Вот глупый MSIE


Это не он глупый


 
TUserClass   (2008-06-07 14:09) [15]


> Игорь Шевченко ©   (07.06.08 14:08) [12]

А вот как ему пришить обработку этого сообщения, зная только его HWND?


 
Игорь Шевченко ©   (2008-06-07 14:10) [16]

TUserClass   (07.06.08 14:09) [15]


> А вот как ему пришить обработку этого сообщения, зная только
> его HWND?


Ты сначала подумай, кто его посылать будет


 
{RASkov} ©   (2008-06-07 14:12) [17]

Что-то я не внимательно ветку читал...(
Сдается мне, что ты подошел не с того конца к задаче....


 
TUserClass   (2008-06-07 14:16) [18]


> {RASkov} ©   (07.06.08 14:12) [17]


 Эххх...а всего то надо отловить Вход/Выход мыши. Я даже представить не мог что микромягкий експлорер не даст мне сего совершить. :(((((


 
TUserClass   (2008-06-07 14:24) [19]

Причем заметил еще одну странность. Если положить на тулбар обычный Image : TImage. Сделать ему ShowHint := true; Hint := "Подсказка"; то MSIE даже не подумает показывать подсказку. Но если после этого создать форму Form := TForm.Create (Application); Form.Show; то после показа формы главное окно MSIE становится не активным и при наведение на Image появится посказка. o_O

Наверн MSIE писал такой же криворукий как и я :))


 
Anatoly Podgoretsky ©   (2008-06-07 15:47) [20]

> TUserClass  (07.06.2008 14:24:19)  [19]

Да куда уж им до тебя.


 
TUserClass   (2008-06-07 15:50) [21]

Блин ... сейчас скачал "чужой" код тулбара и там тоже не работают hint"ы и mouse leave/enter :( что ж за напасть такая ...



Страницы: 1 вся ветка

Текущий архив: 2008.07.06;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.022 c
2-1212652854
TUserClass
2008-06-05 12:00
2008.07.06
Получить координаты, зная Handle...


2-1212932812
Ден
2008-06-08 17:46
2008.07.06
Управление окнами других приложений


15-1211271685
kla$1
2008-05-20 12:21
2008.07.06
Microsoft SQL Server 2000


15-1211365772
MustDie
2008-05-21 14:29
2008.07.06
Нужна помощь!!! Как взаимодействовать с ActiveDirectory из Delph


3-1201004317
Девушка
2008-01-22 15:18
2008.07.06
1c ole