Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.20;
Скачать: CL | DM;

Вниз

Мышка и Форма   Найти похожие ветки 

 
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 вся ветка

Текущий архив: 2003.01.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.026 c
4-62942
Lipa
2002-12-05 20:40
2003.01.20
Уважаемые профи! помогите разобратся.


1-62603
vlad40
2003-01-09 11:41
2003.01.20
Обращение к компоненту по его имени


1-62506
Niko
2003-01-10 13:43
2003.01.20
Интерфейс как в Data Digram


1-62641
Оля
2003-01-09 16:51
2003.01.20
RadioButton


3-62387
MsGuns
2002-12-23 20:37
2003.01.20
Можно ли одним запросом..