Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программа для работы с мышкой! Информация о координатах, кнопках мышки! 
:(
    Опции темы
metamfetamin
Дата 8.12.2007, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 7.11.2007

Репутация: нет
Всего: нет



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

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 MAIL   Вверх
Snowy
Дата 10.12.2007, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: нет
Всего: 484



Что подключается?
Какая именно ошибка?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0696 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.