Интерфейсная секция описания модуля работы с мышью.
Этот модуль можно взять здесь вместе с секцией
описания и небольшим примером использования.
{$D-}
unit MyMouse;
{ Работа с мышью. TURBO-PASCAL 6.0. Начато 30.12.92
written by Alexey Bytchkov. }
interface
var MouseInstalled:boolean; { Инициализирован ли драйвер мыши }
NumberButtons:byte; { Число кнопок мыши }
Keys,MouseDelay:word; x,y,Butt:byte;
SensArea:record { Область восприятия нажатия кнопок мыши }
x1,y1,x2,y2:byte;
end;
Procedure InitMouse; { Произвести начальную установку }
{ Произвести начальную установку и вернуть информацию о текущем состоянии
аппаратных и программных средств мыши.
Устанавливаются переменные MouseInstalled и
NumberButtons ( 0 - не две клавиши, 2 - две клавиши, 3 - три клавиши. }
Procedure ShowMouse; { Сделать курсор мыши видимым }
Procedure HideMouse; { Сделать курсор мыши невидимым }
Procedure SetSensArea(xn,yn,xk,yk:byte);
Procedure WhereMouse(var x,y:word;var Keys:byte);
{ Определить местоположение курсора мыши и состояние клавиш.}
{ В x и y возвращаются координаты курсора, а в Keys состояние клавиш.
Keys=0 - все клавиши отпущены
Keys=1 - нажата левая клавиша
Keys=2 - нажата правая клавиша
Keys=4 - нажата средняя клавиша }
Procedure MoveMouseXY(x,y:byte);
{ Перемещает курсор мыши в заданную позицию (для текстового режима) }
Function GetPressNumMouse(Button:byte;var x,y:word):word;
{ Получить информацию о количестве нажатий на клавишу }
Procedure GetKeyOrButton(var key:Word;var x,y,butt:byte;
HoldMouseInSensArea:boolean);
{ Вернуть клавишу или кнопку мыши }
{ Процедура ожидает происхождения одного из следующих событий:
1) нажата какая-либо клавиша
2) нажата какая-либо кнопка мыши.
Как только происходит одно из них, процедура возвращает:
1) код клавиши ( в первом байте либо 0 (норм. кл.), либо 1 (функц. кл),
во втором - код). x,y,butt - равны 0
2) butt - три младших бита - состояние кнопок, x,y - позиция в этот момент.
key в этом случае равна 0.
Если HoldMouseInSensArea=true, то выход из процедуры осуществляется только
в том случае, если в момент нажатия клавиши мыши, она находится в области
чувствительности SensArea, в противном случае выход осуществляется при пер-
вом же нажатии кнопки мыши. На клавиатуру это не оказывает никакого влияния}
implementation
...
 
 
 
 
 
 
|