IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Программа для работы с мышкой!, Информация о координатах, кнопках мышки!!!
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Мужской

Репутация: -  -1  +


Написал процедуру которая должна:
Выдавать координаты мыши
Выдавать, сколько кнопок у мыши?
Выдавать какая кнопка нажата?
Процедура
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.
Должно собственно и выводится то что описано выше.......но в самой программе мне выдает ошибку в строке где подключается процедура....помогите......в чем может быть проблема???
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






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

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.08.2022 7:15
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name