Как изменить позицию курсора мыши на форме?

Форум для изучающих FPC и их учителей.

Модератор: Модераторы

Как изменить позицию курсора мыши на форме?

Сообщение DropSoft » 27.11.2017 14:44:24

Прошу помощи. Нужно при вращении колесика мыши с нажатым контролом установить курсор мыши в центр картинки MyImage.
Код: Выделить всё
procedure TMain.MyImageMouseWheelDown(Sender: TObject; Shift: TShiftState;
  MousePos: TPoint; var Handled: Boolean);
begin
  if ssCtrl in Shift then begin
    // здесь надо установить курсор мыши в центр MyImage
    MousePos.X := MyImage.Width div 2;
    MousePos.Y := MyImage.Height div 2;
  end;
end;

Здесь при попытке изменить MousePos ничего не происходит, что в общем, понятно. А как правильно?
DropSoft
новенький
 
Сообщения: 31
Зарегистрирован: 31.03.2013 13:47:40

Re: Как изменить позицию курсора мыши на форме?

Сообщение Лекс Айрин » 27.11.2017 16:11:44

Проблема в том, что MousePos у тебя определена как константа (без модификатора var), поэтому бесполезно ее использовать. Либо искать другой метод (где он есть), либо использовать внешние по отношению к процедуре координаты.

Насколько я понимаю, колесико не предназначено для движения курсора, а для движения относительно него. Попробуй заюзать нажатие средней (если не ошибаюсь, третьей) кнопки.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Как изменить позицию курсора мыши на форме?

Сообщение iskander » 27.11.2017 19:53:27

Что-нибудь вроде:
Код: Выделить всё
procedure TMain.MyImageMouseWheelDown(Sender: TObject; Shift: TShiftState;
  MousePos: TPoint; var Handled: Boolean);
begin
  if ssCtrl in Shift then
    begin
      Mouse.CursorPos := MyImage.ClientToScreen(Point(MyImage.Width div 2, MyImage.Height div 2));
      Handled := True;
    end;
end;
iskander
энтузиаст
 
Сообщения: 606
Зарегистрирован: 08.01.2012 18:43:34

Re: Как изменить позицию курсора мыши на форме?

Сообщение Python » 27.01.2018 00:59:05

Простите, но чем SetCursorPos не подходит?
Python
новенький
 
Сообщения: 20
Зарегистрирован: 23.01.2018 21:50:17


Вернуться в Обучение Free Pascal

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

Рейтинг@Mail.ru