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

Вниз

Курсор   Найти похожие ветки 

 
Shnabs   (2005-03-01 19:46) [0]

Как выполнить какое-нибудь действие, если курсор мыши наведен на определенный объект, а другое действие, если он (курсор) не наведен на этот объект.


 
begin...end ©   (2005-03-01 21:09) [1]

> Shnabs   (01.03.05 19:46)

Очевидно, нужно проверить, входит ли точка с координатами курсора в область, ограниченную компонентом.

Координаты курсора можно получить через API-функцию GetCursorPos или через глобальный объект Mouse: свойство Mouse.CursorPos. А прямоугольник области компонента находится в свойстве TControl.BoundsRect. Проверить принадлежность одного другому можно с помощью функции PtInRect.

Но координаты курсора нужно преобразовывать в систему координат родителя компонента. Например, если на форме с именем MyForm находится кнопка MyButton (и MyForm является родителем этой кнопки), то проверить можно так:

if PtInRect(MyButton.BoundsRect, MyForm.ScreenToClient(Mouse.CursorPos)) then
 // Курсор находится в пределах прямоугольника кнопки

См. также: TWinControl.ControlAtPos.


 
Shnabs   (2005-03-01 21:22) [2]

Дело в том что мне надо сделать, чтобы курсор при выходе из области объекта выполнил коекакое действие, а как это сделать я что-то не доганю.


 
P.N.P. ©   (2005-03-01 21:26) [3]

лови сообщение CM_MOUSELEAVE


 
begin...end ©   (2005-03-01 21:28) [4]

> Shnabs   (01.03.05 21:22) [2]

Понятно. А вот теперь скажите честно - следует ли этот Ваш вопрос из первоначального вопроса? По-моему, совершенно не следует. И на первоначальный вопрос я уже дал ответ в [1]. И что мне теперь делать? Вдруг я опять не прочитаю Ваши мысли, и опять отвечу не на тот вопрос?

Создайте потомка компонента и создайте в нём обработчики сообщений CM_MOUSEENTER и CM_MOUSELEAVE. Пример того, как это можно сделать, смотрите в исходниках TCustomLabel.

Боольше не скажу ни слова. Весь выдохся на ответе [1].



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

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

Наверх




Память: 0.47 MB
Время: 0.035 c
1-1109267654
aglar
2005-02-24 20:54
2005.03.13
Как сохранить динамически созданные пункты меню?


1-1109332679
Shurik_
2005-02-25 14:57
2005.03.13
OpenDialog1


8-1098777398
Slonco
2004-10-26 11:56
2005.03.13
Как отправить звуковую почту?


3-1107890484
XAN
2005-02-08 22:21
2005.03.13
QReport+Unicode


3-1108107634
Mishenka
2005-02-11 10:40
2005.03.13
В поле какого типа лучше всего загружать Gif файлы?