Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.07.06;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.186 c
9-1169734159
Creative
2007-01-25 17:09
2008.07.06
3D tetris


2-1212568980
lead-in
2008-06-04 12:43
2008.07.06
indy, компонент IdFTP


2-1212754242
Dsen
2008-06-06 16:10
2008.07.06
Приостановка цикла


9-1172040240
Cerberus
2007-02-21 09:44
2008.07.06
Вопрос XProger у по его сетевому модулю.


2-1213084956
Mishenka
2008-06-10 12:02
2008.07.06
PopupMenu в MainMenu





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский