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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2015, 08:52   #1
AnTe
Форумчанин
 
Регистрация: 25.09.2008
Сообщений: 209
По умолчанию Проблема со срабатыванием OnMouseLeave

На форме лежит Image, на нём кнопка, по умолчанию невидимая

в Image на OnMouseEnter она становится видимой, по OnMouseLeave - снова исчезает

красота!

но проблема в том, что когда мышой попадаю на эту кнопку - Image решает, что я его покинул, срабатывает OnMouseLeave, кнопка исчезает...

как решить проблему? Голову уже сломал почти, ничего в неё путнего не приходит!
AnTe вне форума Ответить с цитированием
Старый 17.04.2015, 09:27   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А они есть в Image эти события? Впрочем не важно, прицепить можно. По выходу проверить координаты курсора и если они в области Image, то видимость кнопки не гасить
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 17.04.2015, 09:33   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А ты в OnMouseLeave получи экранные координаты Image и сверь с координатами мышки. Если будут в пределах то кнопку не тушить.
ClientToScreen() поможет. И Mouse.CursorPos

P.S. О! Аватар опередил. Теряю хватку... Старею...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.04.2015, 13:56   #4
AnTe
Форумчанин
 
Регистрация: 25.09.2008
Сообщений: 209
По умолчанию

Здорово!! Примерно так и начинал делать, только пытался определить, наехал ли курсор на кнопку, потом подумал, что кнопок может быть много и слишком много проверок придётся проводить. А ведь действительно, достаточно провести проверку попадание в прямоугольник Image !! а вот не дошло

ну и про ClientToScreen не знал, рыть бы пришлось, а теперь - всё работает! спасибо!
AnTe вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
onmousemove и onmouseleave лэйбела alexander1992 Помощь студентам 4 09.03.2013 06:26
Неблокирующий сокет Си проблема с закрытием, проблема с закрытием сокетов в цикле mnx_vol C/C++ Сетевое программирование 0 06.11.2012 13:57
onMouseLeave на TImage или TForm skalt12 Общие вопросы Delphi 6 15.04.2010 18:49
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37