Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2015, 09:01   #1
Николаич
 
Регистрация: 06.08.2007
Сообщений: 6
По умолчанию Как сделать чтобы окно закрывалось только после покидания курсором внешних границ окна

Окно - всплывает при определённом событии
Hint.Visible:= True;
На окне - на Hint есть другие элементы, а на их, возможно, ещё.

Надо, чтобы Hint.Visible:= False; получалось только после покидания курсором внешних границ окна.

OnMouseLeave происходит и когда курсор находится на элементе, находящемся на Hint - е, т.е. при потере фокуса.

А надо, чтобы при данном потере фокуса Hint.Visible:= True;

Hint состоит из регионов - сложная форма. Несмотря на это понимает OnMouseLeave.
Но если проследить за координатами в HintControl.MouseMove(Shift: TShiftState; X, Y: Integer);

if (X < Left) or
(Y < Top) or
(X > Left + Width) or
(Y > Top + Height)
then
Visible:= False;

то не понимает регионов, а понимает только прямоугольник.

Помогите, пожалуйста.

Последний раз редактировалось Николаич; 16.12.2015 в 09:13. Причина: Дополнение
Николаич вне форума Ответить с цитированием
Старый 16.12.2015, 10:14   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

а ты, хоть по таймеру, проверяй, попадает курсор внутрь окна или нет.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 16.12.2015, 12:25   #3
Николаич
 
Регистрация: 06.08.2007
Сообщений: 6
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
а ты, хоть по таймеру, проверяй, попадает курсор внутрь окна или нет.
не понимает регионов, а понимает только прямоугольник
Николаич вне форума Ответить с цитированием
Старый 16.12.2015, 12:28   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
не понимает регионов, а понимает только прямоугольник
кто не понимает-то?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 16.12.2015, 13:00   #5
Николаич
 
Регистрация: 06.08.2007
Сообщений: 6
По умолчанию

HintControl.MouseMove(Shift: TShiftState; X, Y: Integer);

if (X < Left) or
(Y < Top) or
(X > Left + Width) or
(Y > Top + Height)
then
Visible:= False;
Николаич вне форума Ответить с цитированием
Старый 16.12.2015, 13:51   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Напиши себе функцию выяснения факта попадания точки курсора в твой многоугольник. Не можешь сам - укради готовую.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что делать чтобы консольное окно не закрывалось? Аллаберди Visual C++ 6 19.08.2014 06:24
как сделать так чтобы входить в оперу или хром только после введения пароля? [блондинка в шоке] sephia Помощь студентам 1 10.03.2012 21:22
Как сделать, чтобы после нажатия кнопки выводилось нужное мне окно? phantasmagoria Помощь студентам 5 28.04.2011 23:43
Хочу, чтобы окно не закрывалось после выполнения программы fs444 Общие вопросы C/C++ 7 22.09.2009 16:42
КАК СДЕЛАТЬ ТАК ЧТОБЫ ВСЕ КОМПОНЕНТЫ КОТ. НА ФОРМЕ РАСТЯГИВАЛИСЬ НА ВСЁ ОКНО ПРИ РАЗВЁОТЫВАНИЕ ОКНА???? Alexij Общие вопросы Delphi 4 23.06.2008 10:44