Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Программа для работы с мышкой!


Автор: metamfetamin 8.12.2007, 17:22
Написал процедуру которая должна:
Выдавать координаты мыши 
Выдавать, сколько кнопок у мыши? 
Выдавать какая кнопка нажата? 
Процедура
Код

unit Mouse; 
interface 
var MousePresent:Boolean; 
function MouseInit(var nb:word):Boolean; 
{nb-количество клавиш мыши, True-успешно}
procedure MouseShow; 
Procedure MouseRead(var X,Y,bMask:Word); 
{bMask - маска клавиш:
0-й байт - левая клавиша нажата (равно 1)
1 - правая
2 - центральная (если есть)}
implementation 
uses Dos; 
var R:Registers; 
Mi:Pointer; 
function MouseInit(var nb:Word):Boolean; 
begin 
if MousePresent then 
begin {мышь присутствует}
R.AX:=0; 
Intr($33,R); 
if R.AX=0 then 
begin
nb:=0; {инициализация не удалась}
MouseInit:=false; 
end 
else 
begin 
x nb:=R.BX; {число клавиш} 
MouseInit:=True; 
end 
end 
else
begin
nb:=0; {мышь отсутствует}
MouseInit:=false; 
end 
end; 
procedure MouseShow; 
begin 
R.AX:=1; 
Intr($33,R); 
end; 
procedure MouseRead(var X,Y,bMask:word); 
begin 
R.AX:=3; 
Intr($33,R); 
X:=R.CX; 
Y:=R.DX; 
bMask:=R.BX; 
end; 
{Инициализация} 
begin 
GetIntVec($33,Mi); 
if Mi=nil then 
MousePresent:=False; {нет адреса программы обраб прерываний}
if Byte(Mi^)=$CE then {фиктивный адрес прогр обраб прер}
MousePresent:=False 
else 
MousePresent:=True 
end.


При подключении етой процедуры в программу которая описана ниже 
Код

program osl8; 
uses Crt,Mouse; 
var X,Y,BN,Kol:Word; 
begin 
TextBackGround(Blue); 
ClrScr; 
TextColor(Red); 
if MouseInit(Kol) then 
begin 
MouseShow; 
repeat 
MouseRead(X,Y,BN); 
if BN and 1 <>0 then 
begin {нажата левая кнопка}
X:=X div 10+1;
Y:=Y div 10 +1; 
GoToXY(X,Y); 
Write('*'); 
end;
until BN and2<>0 {выход при нажатой правой клавиши}
end;
end.

Должно собственно и выводится то что описано выше.......но в самой программе мне выдает ошибку в строке где подключается процедура....помогите......в чем может быть проблема???

Автор: Snowy 10.12.2007, 12:42
Что подключается?
Какая именно ошибка?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)