Ответы на все вопросы

FAQ / Программирование / Delphi

Как сделать, чтобы курсор мыши при движении перемещался через 5 пикселов?

Вопрос:

Как сделать, чтобы курсор мыши при ее движении перемещался не через 1 пиксел (как обычно), а через 5 пикселов?

Ответ:

   Если в пределах формы:

var
  MP: TPoint;
  MMPar: Integer;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  P: TPoint;
  dx, dy: Integer;
begin
  if MMPar = 0 then
  begin
    MMPar := 1;
    Exit;
  end;
  MMPar := 0;

  dx := 5;
  dy := 5;
  GetCursorPos(P);
  if P.X < MP.X then
    dx := -dx
  else if P.X = MP.X then
    dx := 0;
  if P.Y < MP.Y then
    dy := -dy
  else if P.Y = MP.Y then
    dy := 0;
  P.X := P.X + dx;
  P.Y := P.Y + dy;
  SetCursorPos(P.X, P.Y);
  MP := P;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
  GetCursorPos(MP);
  MMPar := 0;
end;

   Если на форме есть другие компоненты, то для них тоже надо обрабатывать OnMouseMove.
   Если же надо перемещать таким образом курсор по всему экрану, то тут надо ставить ловушку на мышь (функция SetWindowsHookEx с параметром WH_MOUSE). Это намного труднее и, скорее всего, понадобится создавать DLL.

Версия для печати Найти похожие статьи
Поиск по сайту

Архив

ВсПнВтСрЧтПтСб
1234567
891011121314
15161718192021
22232425262728
293012345
6789101112
13141516171819
20212223242526
272829303112



Мы рекомендуем