Помощь - Поиск - Пользователи - Календарь
Полная версия: Программа для работы с мышкой!
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
metamfetamin
Написал процедуру которая должна:
Выдавать координаты мыши
Выдавать, сколько кнопок у мыши?
Выдавать какая кнопка нажата?
Процедура
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.
Должно собственно и выводится то что описано выше.......но в самой программе мне выдает ошибку в строке где подключается процедура....помогите......в чем может быть проблема???
volvo
Цитата
мне выдает ошибку в строке где подключается процедура
Поточнее можно? В какой строке? Какую ошибку? Какая ПРОЦЕДУРА подключается (обычно подключается модуль)?
metamfetamin
Цитата(volvo @ 8.12.2007 17:23) *

Поточнее можно? В какой строке? Какую ошибку? Какая ПРОЦЕДУРА подключается (обычно подключается модуль)?


Ошибка file not found (mouse.tpu)

Может я как то не правильно сохранил или не туда поместил сам юнит?????
volvo
Может, надо нажимать F9, а не Alt+F9? smile.gif
metamfetamin
Вроде пошло дальше, дошло до
...
if MouseInit(kol) then
...
Как я понимаю надо описать выше написаное в var ???? А как именно???
volvo
blink.gif
Не понял... Что там компилятору-то твоему не нравится? Ошибку-то приводи саму... У меня в этой строке все нормально проходит...
metamfetamin
Цитата(volvo @ 9.12.2007 11:52) *

blink.gif
Не понял... Что там компилятору-то твоему не нравится? Ошибку-то приводи саму... У меня в этой строке все нормально проходит...



Добавлено через 3 мин.
Скачал Паскаль другой вродь пошло!!!! Благодарю за беспокойство!!!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.