Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2007, 17:24   #1
metamfetamin
Пользователь
 
Аватар для metamfetamin
 
Регистрация: 02.11.2007
Сообщений: 68
По умолчанию Программа для работы с мышкой!Информация о координатах, кнопках мышки!!!

Написал процедуру которая должна:
Выдавать координаты мыши
Выдавать, сколько кнопок у мыши?
Выдавать какая кнопка нажата?
Процедура
Код
Код:
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.
Должно собственно и выводится то что описано выше.......но в самой программе мне выдает ошибку в строке где подключается процедура....помогите......в чем может быть проблема???
metamfetamin вне форума Ответить с цитированием
Старый 08.12.2007, 17:46   #2
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Цитата:
Сообщение от metamfetamin Посмотреть сообщение
Написал процедуру которая должна.....
Если бы написал сам, то таких бы вопросов не возникло.
Исправь следующее:
в строке: x nb:=R.BX; {число клавиш} убери x
в строке: until BN and2<>0 {выход при нажатой правой клавиши} поставь пробел перед двойкой.
После этого у меня заработала (Win XP)

Последний раз редактировалось _Dmitry; 08.12.2007 в 17:52.
_Dmitry вне форума Ответить с цитированием
Старый 08.12.2007, 21:35   #3
metamfetamin
Пользователь
 
Аватар для metamfetamin
 
Регистрация: 02.11.2007
Сообщений: 68
По умолчанию

x я убрал давным давно......ето простая опечатка!!!!!
а ошибку выдает совсем в другом месте
metamfetamin вне форума Ответить с цитированием
Старый 09.12.2007, 11:32   #4
metamfetamin
Пользователь
 
Аватар для metamfetamin
 
Регистрация: 02.11.2007
Сообщений: 68
По умолчанию

Выдает ошибку в строке
...
if MouseInit(kol) then
...
Unknown identifier
metamfetamin вне форума Ответить с цитированием
Старый 09.12.2007, 11:40   #5
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

У меня работает, данной ошибки не возникает. Компилировал в Borland Pascal 7.0
Вложения
Тип файла: zip OSL8.zip (3.4 Кб, 21 просмотров)
_Dmitry вне форума Ответить с цитированием
Старый 09.12.2007, 11:44   #6
metamfetamin
Пользователь
 
Аватар для metamfetamin
 
Регистрация: 02.11.2007
Сообщений: 68
По умолчанию

Цитата:
У меня работает, данной ошибки не возникает. Компилировал в Borland Pascal 7.0
А вы в самом юните никаких исправлений не делали?????

Последний раз редактировалось metamfetamin; 09.12.2007 в 11:50.
metamfetamin вне форума Ответить с цитированием
Старый 09.12.2007, 11:55   #7
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Нет, никаких изменений. Компилировал эти исходники:
Вложения
Тип файла: zip osl8_.zip (1.0 Кб, 19 просмотров)
_Dmitry вне форума Ответить с цитированием
Старый 09.12.2007, 12:01   #8
metamfetamin
Пользователь
 
Аватар для metamfetamin
 
Регистрация: 02.11.2007
Сообщений: 68
По умолчанию

Тю..... с етих исходников все работает!!!!! Спасибо огромное за беспокойство!!!
metamfetamin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа работы с сайтом (автологин и т.д.) eldar Работа с сетью в Delphi 10 06.08.2008 11:19
программа автомотического управления клавиатурой или мышкой someuser Помощь студентам 2 30.07.2008 22:58
Программа для работы с Шоубизнесом litvik БД в Delphi 3 02.02.2008 17:57
HELP!Си - программа для работы со строками + сумма строк в матрице! DUPLET Помощь студентам 1 20.12.2007 21:16
Управление МЫШКОЙ!!! Рустам Помощь студентам 11 28.10.2007 12:15