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

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

CM_MOUSEENTER, CM_MOUSELEAVE и TSpeedButton [D7, WinXP]


X9 ©   (2004-06-26 14:43:00) 

Здравствуйте, Мастера!
Скажите, как можно отловить сообщения CM_MOUSEENTER и CM_MOUSELEAVE для TSpeedButton, ведь данный компонент не имеет собственного Handle.


jack128   (2004-06-26 14:54:00) [1]


> а так есть WindowProc
угу, значит - три варианта решения


jack128   (2004-06-26 14:51:00) [2]


>  сообщения CM_MOUSEENTER и CM_MOUSELEAVE для TSpeedButton,
> ведь данный компонент не имеет собственного Handle.
это не виндовые сообщения - они реализуются внутреннеми механизмами Delphi(cм TObject.Dispatch, TObject.DefaultHandler и тд) и поэтому хендл тут не нужен.
Вырантов решения два:
Либо писать наследника от TSpeedButton и перехватывать эти сообщения, либо отлавливать эти соощения у родителя кнопки (обычно форма) и смотреть

if Message.lParam = Integer(MyCoolSpeedButton) then
begin
 ...
end;


GuAV   (2004-06-26 14:49:00) [3]

Не имеет. Ловить средствами Дельфи. У наследника проще всего через message methods а так есть WindowProc


Наверх

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