Иллюстрированный самоучитель по Delphi 7 для профессионалов

Управление мышью

В VCL имеется класс TMouse, содержащий свойства мыши, установленной на компьютере. Обращаться к экземпляру класса, который создается автоматически, можно при помощи глобальной переменной Mouse. Свойства класса представлены в табл. 27.1.

В качестве примера обработки управляющих воздействий от мыши рассмотрим пример DemoMouse. Он очень прост. Перемещение мыши с нажатой левой кнопкой обеспечивает выделение прямоугольного фрагмента. Такую функцию вы можете наблюдать в любом графическом редакторе, а исходный код проекта использовать в собственных разработках (листинг 27.2).

Таблица 27.1. Свойства и методы класса mouse.

Объявление Тип Описание
property Capture: HWND; Pu Дескриптор элемента управления, над которым находится мышь
property CursorPos: TPoint; Pu Содержит координаты указателя мыши
property Draglmmediate: Boolean; Ro При значении True реакция на нажатие выполняется немедленно
property DragThreshold: Integer; Ro Задержка реакции на нажатие
property MousePresent: Boolean; Ro Определяет наличие мыши
type UINT = LongWord; property RegWheelMessage: UINT; Ro Задает сообщение, посылаемое при прокрутке в ScrollMouse
property WheelPresent: Boolean; Ro Определяет наличие ScrollMouse
property WheelScrollLines: Integer; Ro Задает число прокручиваемых линий

При нажатии левой кнопки мыши в методе-обработчике FormMouseDown включается режим рисования прямоугольника (isDown: = True) и задаются его начальные координаты.

При перемещении мыши по форме проекта вызывается метод-обработчик FormMouseMove, в котором координаты курсора и размеры прямоугольника передаются на панель состояния. Если левая кнопка мыши нажата (isDown = True), то осуществляется перерисовка прямоугольника.

При отпускании кнопки мыши в методе FormMouseUp рисование прямоугольника прекращается (isDown: = False).

Если была нажата правая кнопка мыши, то метод-обработчик FormMouseDown обеспечивает отображение диалога выбора цвета, который позволяет сменить цвет линий прямоугольника.

Метод-обработчик TimerTimer обеспечивает отображение на панели состояния текущей даты и времени.

Примечание
Для рисования прямоугольника использовался метод PolyLine, который работает при перемещении курсора влево и вверх относительно начальной точки. Для стирания старого прямоугольника желательно использовать режимы XOR и NOTXOR, которые обеспечивают восстановление рисунка под линией. Подробно об этом см. гл. 10
.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.