| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Подсказка для неактивной формы |
| Автор: Romero 16.9.2006, 07:58 |
| Подскажите, как показывать подсказку формы, если форма неактивна? То есть нужно вывести обычный виндовый хинт при наведении курсора на форму. Делал через onmouseover и THintWindow, но не знаю, как убирать подсказку при покидании курсором границ формы. |
| Автор: Palladin 16.9.2006, 19:07 |
| Запоминай координаты формы при активации, потом считывай координаты курсора если курсор вышел за предел то скрываеш подсказку чё сложного-то? |
| Автор: Alexeis 16.9.2006, 19:51 |
| Сделать обработчики событий CM_MOUSEENTER CM_MOUSELEAVE |
| Автор: Romero 19.9.2006, 05:54 |
| RooR, ты предлагаешь при каждом выводе подсказки проверять координаты? А если форма сдвинулась или изменила размер - снова координаты запоминать? Кроме того в описанном мной способе есть существенное отличие от стандартной подсказки - она бегает за курсором при его передвижении в пределах формы. Это неудобно, хотелось бы просто запустить вывод обычной подсказки при наведении на форму, и пущай она сама пропадает через несколько секунд. Если непонятно, о чем я говорю - примером будет виндовый QuickLaunch. При наведении на любой ярлык появляется хинт, НЕ ПЕРЕМЕЩАЕТСЯ за курсором при передвижении в пределах размеров значка и ИСЧЕЗАЕТ САМ при покидании пределов значка. alexeis1, не раз писали на многих форумах об этих событиях - при резком движении мышью они не срабатывают. |
| Автор: Romero 24.9.2006, 08:37 |
| Чтобы было понятнее, о чем я говорю: Создайте форму и задайте ей hint (и showhint в true). Если навести на нее мышью - появится подсказка (именно в том месте, где был курсор при срабатывании события), которая не будет перемещаться за куросором и исчезнет после некоторого времени (до следующего срабатывания события). Если же теперь сделать форму неактивной - хинт не покажется. Вот, а хотелось бы |
| Автор: Romero 28.9.2006, 05:50 |
| Мда, нехило! Слишком сложная идея. Неужели проще нет вариантов? |
| Автор: Alexeis 28.9.2006, 10:12 |
| Romero, ну сложность заключается в том что сообщения о перемещения мыши отправляются форме только когда курсор на ней, а если мы резко дернем мышью, то курсор в один момент был на форме, вдругой исчез. В этом случае у пиложения есть неопределенность, то ли мышка не двигается, то ли она ушла с формы. В обоих случаях нет сообщений о перемещении над формой. Отсюда вывод, что нам нужны сообщения вне формы. Этот способ как раз и позволяет получить журналированые сообщения о перемещении мыши вне окна. Так что тут вот такие ограничения. |