«УТВЕРЖДАЮ»
Ректор университета
_________________А.В. Лагерев
«________»_____________2006г.
Алгоритмические языки и программирование Работа с модулем мыши mouse.Tpu
Методические указания к выполнению лабораторной работы №11
для студентов дневной формы обучения
специальностей 075300 – "Организация и технология
защиты информации",
220300 – "Системы автоматизированного проектирования"
Брянск 2006
УДК 004.43
Алгоритмические языки и программирование. Работа с модулем мыши MOUSE.TPU: методические указания к выполнению лабораторной работы №11 для студентов дневной формы обучения специальностей 075300 – "Организация и технология защиты информации", 220300 – "Системы автоматизированного проектирования".– Брянск: БГТУ, 2006. - 11 с.
Разработал: Ю.А. Леонов, асс.
Научный редактор Ю.М. Казаков
Редактор издательства Л.И. Афонина
Компьютерный набор Ю.А. Леонов
Рекомендовано кафедрой «Компьютерные технологии и системы» БГТУ (протокол № от )
Цель работы
Целью работы является овладение практическими навыками работы с модулем MOUSE.TPU
Продолжительность работы – 3ч.00мин.
Теоретическая часть
Модуль (UNIT) в языке Pascal - это особым образом оформленная библиотека подпрограмм. Модуль в отличие от программы не может быть запущен на выполнение самостоятельно, он может только участвовать в построении программ и других модулей. Модули позволяют создавать личные библиотеки процедур и функций и строить программы практически любого размера.
Модуль в языке Pascal представляет собой отдельно хранимую и независимо компилируемую программную единицу. В общем случае модуль - это совокупность программных ресурсов, предназначенных для использования другими программами. Под программными ресурсами понимаются любые элементы языка Pascal: константы, типы, переменные, подпрограммы.
Все программные элементы модуля можно разбить на две части:
программные элементы, предназначенные для использования другими программами или модулями, такие элементы называют видимыми вне модуля;
программные элементы, необходимые только для работы самого модуля, их называют невидимыми или скрытыми.
В соответствии с этим модуль, кроме заголовка, содержит две основные части, называемые интерфейсом и реализацией.
В нашем случае рассмотрим модуль мыши Mouse.tpu, который имеет следующий вид:
Unit mouse;
Interface {Интерфейсная часть}
type resetrec = record {Данная структура используется в
exists : boolean; процедуре для определения в ОС мыши}
nbuttons : integer;
end;
locrec = record {Структура locrec используется для
buttonstatus : integer; получения информации о состоянии
opcount : integer; мыши: buttonstatus - номер нажатой
column : integer; клавиши; opcount – флаг, который
row : integer; выставляется при происхождении
end; события 1-событие произошло, 0-нет;
column – количество столбцов или x;
row – количество строк или y}
moverec = record {Структура moverec используется для
hcount: integer; записи относительного смещения
vcount: integer; координат мыши при движении ее}
end;
procedure mreset(var mouse: resetrec);
{Процедура, которая определяет мышь, определенную в ОС}
procedure mshow;
{Процедура, вызывающая появление курсора мыши}
procedure mhide;
{Процедура, которая «прячет» курсор}
procedure mpos(var mouse: locrec);
{Данную процедуру необходимо крутить в цикле, тогда данные, возвращаемые в структуре locrec, будут сообщать текущее состояние мыши}
procedure mmoveto(col, row: integer);
{Процедура, перемещающая курсор мыши в заданные координаты}
procedure mpressed(button: integer; var mouse: locrec);
{Процедура, которая отслеживает событие нажатия на клавишу передаваемую в button 0-левая клавиша мыши, 1-правая клавиша мыши. В структуре locrec возвращается buttonstatus – нажатая клавиша во время срабатывания события. Факт срабатывания события можно определить по значению в opcount, 1-событие сработало, 0-событие не сработало}
procedure mreleased(button: integer; var mouse: locrec);
{Процедура, аналогичная mpressed. Событие срабатывает, в том случае, когда клавиша мыши отпущена}
procedure mcolrange(min, max: integer);
{Устанавливает минимальные и максимальные границы для перемещения курсора мыши, т.е. если вызвали процедуру mcolrange с фактическими параметрами 10 и 50: mcolrange(10, 50), то движение курсора будет ограничено следующим образом по координате x: 10<=mx<=50}
procedure mrowrange(min, max:integer);
{Процедура, подобная mcolrange, но ограничения устанавливаются по y}
{Остальные процедуры в рамках данной лабораторной работы рассматриваться не будут}
procedure mgraphcursor(hhot, vhot: integer; maskseg, maskofs: word);
procedure mtextcursor(ctype, p1, p2: word);
procedure mmotion(var moved: moverec);
procedure minsttask(mask, taskseg, taskofs: word);
procedure mlpenon;
procedure mlpenoff;
procedure mratio(horiz, vert: integer);
implementation
…
Примечание: Процедуры mpos, mpressed, mreleased обычно используют в цикле, где проверяют состояние мыши. Там же программист задает реакцию (необходимые действия) на происходящие события.