![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Привет..
Вопрос в следующем: Есть форма, которая прячется путем Код:
На форме таймер, в таймере код: Код:
Вся соль в том, что когда беру любой ярлык, неважно откуда, подвожу его в угол, форма появляется и сразу исчезает. Если убрать код проверки клика вне формы - всё получается как надо... Как можно вылечить данный недуг? Спасибо заранее. |
#2
|
||||
|
||||
![]() Есть понятие клиентской и неклиентской части формы, они не совпадают по размерам, последняя немного (на толщину рамки с трёх сторон и шапки сверху) больше, а в условии вычисления момента скрытия это видимо и не учитывается - клик идёт формально ПО форме, а фактически НЕ, да ещё и событие "захода" на форму генерится только один раз, а "сдвига" по рамке несколько, возможно нужно добавить флажок как индикатор прохождения этого "терминатора"
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Gareth (15.01.2016)
|
#3
|
|||
|
|||
![]() Цитата:
![]() Как проблему вижу я: мне кажется, форма появляется и сразу исчезает из-за постоянного if GetAsyncKeyState(VK_LBUTTON)<> 0 then, так как в таймере 2 условия: на то что курсор в углу и то что кнопка зажата... А когда я пытаюсь добавить ярлык(путем drag&drop) эти условия срабатывают обе. От этого мигание формы (появление-скрытие).. Не знаю как быть.. Обе проверки мне нужны, но как сделать что бы программа поняла, когда я пытаюсь перенести ярлык, а когда я просто ткнул мимо формы? Есть ли способ проверки клика вне формы, без GetAsyncKeyState ? Это проверка зажата ли кнопка, а мне надо отследить именно клик, а не постоянное зажатое положение мыши. Последний раз редактировалось Gareth, 15.01.2016 в 16:34. |
#4
|
||||
|
||||
![]() Цитата:
Для этого есть API функция GetCapture, пример из drkb Код:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Gareth (15.01.2016)
|
#5
|
|||
|
|||
![]() Цитата:
![]() |