Получить экранные координаты курсора мыши можно функцией GetCur-sorPos (модуль Windows):

function GetCursorPos (var lpPoint: TPoint) : BOOL;
stdcall;

Функция заносит в запись lpPoint значения координат. Например, операторы

var Р: TPoint;
GetCursorPos(Р);

позволяют найти экранные координаты курсора как значения полей Р.Х - координата X, P.Y - координата Y. Методы ScreenToClient:

function ScreenToClient (const Point: TPoint): TPoint;

присущие всем оконным компонентам, позволяют пересчитать экранные координаты в систему координат клиентской области компонента.

Задать экранные координаты курсора мыши можно функцией SetCursorPos:

function SetCursorPos (X, Y: Integer): BOOL;
stdcall;

Параметры X и Y - соответствующие координаты курсора. Например, оператор

SetCursorPos (0, 0); переместит курсор в верхний левый угол экрана. Оператор

SetCursorPos(Form2.Left, Form2.Top);

переместит курсор к левому верхнему углу формы Form2. А следующие операторы устанавливают курсор внутри клиентской области окна Memol, расположенного на форме Form2, и с секундной задержкой имитируют щелчок правой кнопкой мыши, вызывающий вызов контекстного меню окна Memol:

var Р: TPoint;

Р := Form2.Memol.ClientToScreen(Point(0, 0)); //для VCL Win32

P := Form2.Memol.ClientToScreen(TPoint.Create(0, 0)); //для VCL .NET

SetCursorPos(P.X + 5, P.Y + 5);
Sleep(1000) ;
Form2.Memol.Perform(WM_RBUTTONDOWN, 0, MakeLParam(5, 5));
Form2.Memol.Perform(WM_RBUTTONUP, 0, MakeLParam(5, 5));

Подобные операции иногда требуются в различных демонстрационных и обучающих приложениях.

12.3 Курсор мыши || Оглавление || 12.3.3 Управление видимостью курсора мыши


Приемы программирования в Delphi на основе VCL



Новости за месяц

  • Март
    2020
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс