TURBO PASCAL |
Новости
|
4.2.9. Обработка событий от мышиВ интерфейсной части модуля F_Mouse определены три процедуры, с помощью которых пользователь может установить собственную процедуру обработки событий от мыши, изменить эту процедуру на новую или сбросить ее. Кроме того, в теле модуля имеется внутренняя процедура MouseHandler, реализующая интерфейс между драйвером мыши и процедурой пользователя. Эта процедура является фактическим обработчиком событий от мыши: при возникновении условий вызова драйвер мыши передает управление именно ей. Процедура MouseHandler проверяет корректность вызова (ненулевое значение адреса процедуры пользователя) и обеспечивает нужный формат вызова последней, Для использования процедур этого раздела программист должен подготовить собственную процедуру с заголовком, соответствующим такому формату: type MouseHandlerType = Procedure (Mask,Buttons,X,Y,DX,DY: Integer); Здесь Mask — условие вызова процедуры; Buttons — состояние клавиатуры в момент вызова; X,Y — координаты положения мыши; DX,DY — общее количество шагов мыши в горизонтальном (DX) и вертикальном (DY) направлениях. Условие вызова процедуры пользователя определяется состоянием разрядов параметра Mask по такому соглашению: • бит 1 — вызов при нажатии левой кнопки мыши; • 2 — при нажатии правой кнопки; • 3 — при нажатии средней кнопки; • 4 — при отпускании левой кнопки; • 5 — при отпускании правой кнопки; • 6 — при отпускании средней кнопки. Если параметр Mask имеет значение 0, драйвер не вызывает процедуру пользователя. Процедура пользователя не может быть локальной (т.е. не может определяться в теле другой процедуры), ее параметры должны соответствовать типу MouseHandlerType. Процедура SetMouseHandler. Извещает драйвер о необходимости передачи управления процедуре пользователя. Заголовок: Procedure SetMouseHandler(Mask: Word; Proc: MouseHandlerType). Здесь Mask — условие вызова; Proc — процедура пользователя. Процедура ChanqeMouseJiandler. Заменяет ранее объявленную процедуру пользователя на новую. Заголовок: Procedure ChangeMouseHandler (Mask: Word; Proc: MouseHandlerType; var OldMask: Word; var OldProc: Pointer). Процедура возвращает в переменной OldMask условие вызова, а в OldProc — адрес ранее установленной процедуры пользователя. Процедура ClearMouseHandler. Удаляет ранее установленный обработчик событий от мыши. Заголовок: Procedure ClearMouseHandler. Если к моменту обращения к этой процедуре была объявлена процедура пользователя (с помощью вызова SetMouseHandler), драйвер перестает ее вызывать. |
(с)Все права защищены По всем интересующим вопросам прошу писать на электронный адрес |