Форум: "WinAPI";
Текущий архив: 2003.01.20;
Скачать: [xml.tar.bz2];
ВнизМышка и Форма Найти похожие ветки
← →
nickolayLI (2002-12-04 14:49) [0]Привет всем !
Подскажите плиз как реализовать чтобы корсор мышы мого перемещать только в пределах формы(окна)?
Спасибо. пока
← →
Song (2002-12-04 14:52) [1]ClipCursor()
← →
nickolayLI (2002-12-04 15:11) [2]Хм... а по подробнее можно ....
Спасибо. Пока.
← →
Song (2002-12-04 15:22) [3]Поподробней в хэлпе.
← →
nickolayLI (2002-12-04 15:30) [4]Да че-то не понятно как-то...
← →
Song (2002-12-04 15:50) [5]Ну уж не хочешь ли чтобы я тебе пример привел по такому 2+2?
В скобках укажи указатель на структуру с типом TRect
Rect можно получить через GetWindowRect() или самому составить вручную через ф-ию Rect() или присваиванием.
К тому же у формы есть всякие TForm.ClientRect()
Вообщем.. вариантов - умри не хочу
← →
nickolayLI (2002-12-04 15:56) [6]Да но тама именно что не TRect а PRect :(
ClipCursor(lpRect); :( и на TRect у мя ругается. :(
← →
Song (2002-12-04 16:01) [7]:) А какое отличие между PRect и TRect? Просвети пожалуйста..
← →
MBo (2002-12-04 16:14) [8]знаешь, что такое @?
← →
Ich Hasse (2002-12-04 18:05) [9]GetWindowRect(..) - достаешь области формы
в нее кажись входят ссылка на окно (hWindow) и PRect
(PRect = ^TRect; - прямоугольник в памяти)
ClipCursor(Rect); Rect достаешь из процедуры GetWindowRect
и при завершении работы не забудь написать
ClipRect(nil);
← →
NickolayLi (2002-12-04 18:34) [10]Хм... ок
и еще один тупой вопрос, где это вызывать, какую процедуру/функцию/метод перекрыть... :( (не пинайте сильно, в АПИ слабак, можно сказать 0
Спасибо. Пока.
← →
Song (2002-12-04 20:47) [11]Да ладно не мучайся, жалко стало (только знаний тебе это не добавит!):
// Ограничить мышь
Procedure TForm1.Button1Click(Sender:TObject);
Var ARect:TRect;
Begin
ARect:=Rect(Left,Top,Left+Width,Top+Height);
ClipCursor(@ARect);
End;
// Освободить
Procedure TForm1.Button2Click(Sender:TObject);
Begin
ClipCursor(nil);
End;
← →
mukha (2002-12-04 22:23) [12]В приведённом примере есть один существенный недостаток. Если код? приведённый в Button1Click навесить на OnCreate, то после кампиляции перемещение мыши ограничивается размерами формы при разработке, а не при выполнении и если они не совпадают, то я не завидую пользователю.Это же произойдёт и при изменении разрешения экрана. Лучше на форму бросить панель и для неё установить Align:=alClient и ограничить перемещение курсора границами панели. Пример был в FAQ.
← →
Diamond Cat (2002-12-05 03:26) [13]2 mukha бред, был преведен пример, а уж куда и чего ставить пусть думает тот кому этот пример нужен, привязывать лишнюю панель вообще не обязательно, можно просто в onpaint сверять реальные размеры с заданными и соответственно переклипивать курсор, это снимет все объявленные вами проблемы, и кстати если уж отклипивать курсор то лучше продублировать это в onclose формы.
← →
nickolayLI (2002-12-05 07:20) [14]2Song: пасиб большой, и по счет знаний, я с апи практически можно сказать впервой сталкиваюсб :(
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.01.20;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.014 c