| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > мышь в окне программы |
| Автор: Михалыч 23.3.2010, 21:36 |
| Подскажите как ограничить курсор мыши,нужно что бы курсор не выходил за рамки моего окна программы,ну то есть что бы курсор был только на моей форме |
| Автор: DarkProg 23.3.2010, 22:59 |
| Отлавливаем координаты мыши и сравниваем с Left и top формы, если мышь пытается выползти то возвращаем её в последние координаты, т.е. нужно добавить две глобальные переменные на последние координаты мыши, и воспользоваться функциями GetCurPos и SetCurPos - кажись так, если ничего не напутал |
| Автор: Михалыч 23.3.2010, 23:11 |
| Спасибо |
| Автор: kami 23.3.2010, 23:12 |
| GetClipCursor & ClipCursor. Последнюю вызывать придется 2 раза - перед установкой ограничений и при снятии их. В интернете и DRKB однозначно должно быть описано. |
| Автор: Frees 23.3.2010, 23:15 |
| ClipCursor - плохой тон пользователей пожалейте! |
| Автор: kami 23.3.2010, 23:22 |
А я и не говорил, что он хороший. Более того, емнип, во всех примерах использования этой функции об этом говорится. Но при необходимости решения такой задачи лучше воспользоваться ей 1 (!) раз, чем на каждый чих мыши уточнять/корректировать ее позицию. ОС пожалейте |
| Автор: Akella 24.3.2010, 10:07 |
| Я бы такую программу сразу в мусорку. Что это за программа, которая ограничивает меня на моём же компьютере? Вирус? |
| Автор: Михалыч 24.3.2010, 14:28 |
Обьясните,а почему ClipCursor - плохой тон , это так на будущее |
| Автор: Coder 24.3.2010, 15:56 | ||
Зачем в мусорку... Я встречал такое в ГИСах - при зуммировании мышкой. Логично, чтобы курсор не вылезал за рабочее окно карты. Добавлено через 13 минут и 56 секунд Это как с goto. Можно обойтись, но иногда есть соблазн обмануть всех и уйти в "конец функции" или выпрыгнуть наружу из кучи вложенных циклов! Я думаю вот что: 1. Курсор мало захватить! Его еще нужно освободить! Теоретически программа между этими двумя действами может повиснуть или вывалить исключение. И пиндыр. 2. Не очень приятно работать с программой, которая навязывает такие ограничения. - я не смогу ответить в аську или переключить музыку, пока не закончу с твоей супер софтиной. |
| Автор: Frees 24.3.2010, 18:55 |
не сам ClipCursor лохой тон а ограничение перемещения мыши - плохой тон... |
| Автор: DarkProg 24.3.2010, 20:57 | ||
Если её свернуть, то мой вариант позволит тебе делать что угодно, я так же полагаю, что если прога уйдёт в фон и станет неактивной, то мой вариант позволит опять же спокойно работать со всем нужным. А ОС причём, по моему желзо надо жалеть |
| Автор: Coder 25.3.2010, 03:23 | ||
Да, но по сравнению с ClipCursor() твой вариант громоздкий |