Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > мышь в окне программы


Автор: Михалыч 23.3.2010, 21:36
Подскажите как ограничить курсор мыши,нужно что бы курсор не выходил за рамки моего окна программы,ну то есть что бы
курсор был только на моей форме

Автор: DarkProg 23.3.2010, 22:59
Отлавливаем координаты мыши и сравниваем с Left и top формы, если мышь пытается выползти то возвращаем её в последние координаты, т.е. нужно добавить две глобальные переменные на последние координаты мыши, и воспользоваться функциями GetCurPos и SetCurPos - кажись так, если ничего не напутал smile 

Автор: Михалыч 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
Цитата(Frees @  23.3.2010,  23:15 Найти цитируемый пост)
ClipCursor - плохой тонпользователей пожалейте!

А я и не говорил, что он хороший. Более того, емнип, во всех примерах использования этой функции об этом говорится.
Но при необходимости решения такой задачи лучше воспользоваться ей 1 (!) раз, чем на каждый чих мыши уточнять/корректировать ее позицию. ОС пожалейте  smile 

Автор: Frees 24.3.2010, 09:30
Цитата(kami @  24.3.2010,  02:22 Найти цитируемый пост)
А я и не говорил, что он хороший. Более того, емнип, во всех примерах использования этой функции об этом говорится. Но при необходимости решения такой задачи лучше воспользоваться ей


лучше не делать таких ограничений вообще.

Автор: Akella 24.3.2010, 10:07
Я бы такую программу сразу в мусорку. Что это за программа, которая ограничивает меня на моём же компьютере? Вирус?

Автор: Михалыч 24.3.2010, 14:28
Цитата(Frees @  23.3.2010,  23:15 Найти цитируемый пост)
ClipCursor - плохой тон

пользователей пожалейте!


Обьясните,а почему ClipCursor - плохой тон  , это так на будущее

Автор: Coder 24.3.2010, 15:56
Цитата(Akella @  24.3.2010,  18:07 Найти цитируемый пост)
Я бы такую программу сразу в мусорку. Что это за программа, которая ограничивает меня на моём же компьютере? Вирус?


Зачем в мусорку... Я встречал такое в ГИСах - при зуммировании мышкой. Логично, чтобы курсор не вылезал за рабочее окно карты.

Добавлено через 13 минут и 56 секунд
Цитата(Михалыч @  24.3.2010,  22:28 Найти цитируемый пост)
Обьясните,а почему ClipCursor - плохой тон  , это так на будущее


Это как с goto. Можно обойтись, но иногда есть соблазн обмануть всех и уйти в "конец функции" или выпрыгнуть наружу из кучи вложенных циклов!

Я думаю вот что:
1. Курсор мало захватить! Его еще нужно освободить! Теоретически программа между этими двумя действами может повиснуть или вывалить исключение. И пиндыр.
2. Не очень приятно работать с программой, которая навязывает такие ограничения.  - я не смогу ответить в аську или переключить музыку, пока не закончу с твоей супер софтиной.

Автор: Frees 24.3.2010, 18:55
Цитата(Михалыч @  24.3.2010,  17:28 Найти цитируемый пост)
Обьясните,а почему ClipCursor - плохой тон  , это так на будущее


не сам ClipCursor лохой тон а ограничение перемещения мыши - плохой тон...

Автор: DarkProg 24.3.2010, 20:57
Цитата(Coder @  24.3.2010,  15:56 Найти цитируемый пост)
2. Не очень приятно работать с программой, которая навязывает такие ограничения.  - я не смогу ответить в аську или переключить музыку, пока не закончу с твоей супер софтиной. 

Если её свернуть, то мой вариант позволит тебе делать что угодно, я так же полагаю, что если прога уйдёт в фон и станет неактивной, то мой вариант позволит опять же спокойно работать со всем нужным.
Цитата(kami @  23.3.2010,  23:22 Найти цитируемый пост)
ОС пожалейте 

А ОС причём, по моему желзо надо жалеть smile, но иногдаа другого выхода нет - такова суровая жизнь smile

Автор: Coder 25.3.2010, 03:23
Цитата(DarkProg @  25.3.2010,  04:57 Найти цитируемый пост)
Если её свернуть, то мой вариант позволит тебе делать что угодно, я так же полагаю, что если прога уйдёт в фон и станет неактивной, то мой вариант позволит опять же спокойно работать со всем нужным.


Да, но по сравнению с ClipCursor() твой вариант громоздкий smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)