Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.011 c
14-62762
TsaturSoft
2002-12-31 18:28
2003.01.20
Информация о процессоре


1-62559
d_oleg
2003-01-08 14:56
2003.01.20
получить иконку приложения


4-62914
Pavel Lechenko
2002-11-28 17:30
2003.01.20
Контролы в DLL - проблемы


3-62440
Wowa-K
2002-12-27 09:50
2003.01.20
как правильно оформить запрос


3-62379
Борис
2002-12-25 08:48
2003.01.20
ДатаВремя в запросе Insert на InterBase





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский