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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2013, 11:16   #1
max9123
Пользователь
 
Регистрация: 06.10.2013
Сообщений: 20
По умолчанию Сделать так ,чтобы мышка не выходила за рамки программы.

Собственно как сделать ,чтобы мышка не выходила за рамки программы?
max9123 вне форума Ответить с цитированием
Старый 13.10.2013, 11:33   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

В событии окна OnMpuseLeave получать координаты, приводить к координатам формы, определять, с какой стороны мышка, и возвращать мышку к краю границы формы.
Человек_Борща вне форума Ответить с цитированием
Старый 13.10.2013, 11:44   #3
max9123
Пользователь
 
Регистрация: 06.10.2013
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
В событии окна OnMpuseLeave получать координаты, приводить к координатам формы, определять, с какой стороны мышка, и возвращать мышку к краю границы формы.
А каким образом можно получить координаты и как возвратить мышку к краю границы формы?
max9123 вне форума Ответить с цитированием
Старый 13.10.2013, 12:00   #4
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

google.ru/получить координаты мыши
google.ru/изменить координаты мыши
alextrof94$gmail.com
alextrof94 вне форума Ответить с цитированием
Старый 13.10.2013, 12:38   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
А каким образом можно получить координаты
Использовать функцию GetMousePos, вроде бы оно, и тип переменной TPoint. Затем Form.ScreenToClient к полученному.
Цитата:
как возвратить мышку к краю границы формы?
X - направление от левого края к правому.
Y - От верхнего края к нижнему.

Перевернутая координатная сетка, в общем.

Далее проверки:
Если X < Form.Left тогда //Проверка выхода за предел слева
X = Form.Left + 1

Если Y < Form.Top тогда //Проверка выхода за предел вверху
Y = Form.Top + 1

Если X > (Form.Left+Form.width) тогда //Проверка выхода за предел справа
X = Form.Left+Form.width - 1

Если Y > (Form.Top+Form.Height) тогда //Проверка выхода за предел снизу
Y = Form.Top+Form.Height - 1

Теперь туже переменную типа TPoint применяем с помощью SetMousePos, предварительно обработав её Form.ClientToScreen.


Все, а код пишите сами =)
Человек_Борща вне форума Ответить с цитированием
Старый 13.10.2013, 12:45   #6
max9123
Пользователь
 
Регистрация: 06.10.2013
Сообщений: 20
По умолчанию

У меня почему-то в событиях формы нету события onMouseLeave. Что делать?
max9123 вне форума Ответить с цитированием
Старый 13.10.2013, 12:50   #7
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Ограничение движения мыши на экране считается ОЧЕНЬ дурным тоном программирования.
_SERGEYX_ вне форума Ответить с цитированием
Старый 13.10.2013, 13:10   #8
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,777
По умолчанию

На самом деле для ограничения мыши в каком-либо прямоугольнике есть функция ClipCursor. Но само такое ограничение в обычной программе является наидурнейшим стилем программирования, совершенно согласен.
Vapaamies вне форума Ответить с цитированием
Старый 13.10.2013, 15:03   #9
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

Есть два варианта, при которых можно ограничить курсор:
виртуальная машина,
динамическая игра в окне.
Но судя по вопросу это ни то ни другое.
alextrof94$gmail.com
alextrof94 вне форума Ответить с цитированием
Старый 13.10.2013, 18:13   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Сообщение от _SERGEYX_ Посмотреть сообщение
Ограничение движения мыши на экране считается ОЧЕНЬ дурным тоном программирования.
Это даже не дурной тон, а дилетанская попытка не дать пользователю выйти из формы
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать так чтобы приложение базы данных работала на компьютерах без установленной программы delphi? Даниил_глазко БД в Delphi 6 09.11.2010 16:26
Как можно самому сделать так, чтобы программы грузились с диска, до загрузки ОС? Лукманов Александр Софт 1 18.04.2009 12:14