![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Надо чтоб указатель двигался с привязкой к точкам (допустим ч/з каждые 50точек), как по координатной сетке (например как в AutoCAD) во все 4 направления.
P.S. Немогу реализовать идею. HELP!!! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . указатель мыши должен двигаться только по отмеченным точкам. |
|
#2
|
||||
|
||||
|
Примерно так:
Код:
procedure MOUSEMOVE(var Message: TWMMouseMove); message WM_MOUSEMOVE; ... var Change: Boolean = False; ... procedure TForm1.MOUSEMOVE(var Message: TWMMouseMove); const Step = 20; var NewPos: TPoint; Tmp: Integer; begin Change:=not Change; Label1.Caption:=IntToStr(Message.XPos); Label2.Caption:=IntToStr(Message.YPos); Tmp:=(Message.XPos div Step)*Step; if Message.XPos mod Step > Step div 2 then Tmp:=Tmp + Step; NewPos.X:=Tmp; Tmp:=(Message.YPos div Step)*Step; if Message.YPos mod Step > Step div 2 then Tmp:=Tmp + Step; NewPos.Y:=Tmp; NewPos:=ClientToScreen(NewPos); if not Change then SetCursorPos(NewPos.X, NewPos.Y); end; |
|
#3
|
|||
|
|||
|
Спасибо, пока самый удачный вариант.
Если есть еще какие - нибудь предложения... ![]() |