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

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

Каждый элемент управления обладает набором свойств и методов, обеспечивающих управление мышью. Понятно, что это важный и нужный механизм. Рассмотрим кратко его устройство.

Воздействие мышью на интерфейсные элементы приложения разработчик может отслеживать при помощи целой группы методов-обработчиков.

На нажатие кнопки мыши реагирует метод:

type
TMouseEvent = procedure (Sender: TObject;
Button: TMouseButton;
SHIFT: TSHIFTState; X, Y: Integer) of object;
property OnMouseDown: TMouseEvent;

В параметре Button передается признак нажатой кнопки:

type TMouseButton = (mbLeft, mbRight, mbMiddle);

Параметр SHIFT определяет нажатие дополнительной клавиши на клавиатуре:

type TSHIFTState = set of (ssSHIFT, ssALT, ssCTRL, ssLeft, ssRight, ssMiddle, ssDouble);

Параметры х и у возвращают координаты курсора.

На отпускание кнопки мыши реагирует метод:

type
TMouseEvent = procedure (Sender: TObject;
Button: TMouseButton;
SHIFT: TSHIFTState; X, Y: Integer) of object;
property OnMouseUp: TMouseEvent;

Его параметры описаны выше.

При перемещении мыши можно вызывать метод-обработчик:

TMouseMoveEvent = procedure(Sender: TObject;
SHIFT: TSHIFTState; X, Y: Integer) of object;
property OnMouseMove: TMouseMoveEvent;

Если у разработчика нет необходимости так подробно отслеживать состояние мыши, можно воспользоваться двумя другими методами:

property OnClick: TNotifyEvent;
property OnDblClick: TNotifyEvent;

Первый реагирует на щелчок кнопкой, второй – на двойной щелчок.

Каждый элемент управления может изменять внешний вид указателя мыши, перемещающейся над ним. Для этого используется свойство:

property Cursor: TCursor;

Для управления дополнительными возможностями мыши для работы в Internet (ScrollMouse) предназначены три метода обработчика, реагирующие на прокрутку:

property OnMouseWheel: TMouseWheelEvent;

…вызывается при прокрутке;

property OnMouseWheelUp: TMouseWheelUpDownEvent;

…вызывается при прокрутке вперед;

property OnMouseWheelDown: TMouseWheelUpDownEvent;

…вызывается при прокрутке назад.

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