Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа по драйверу мыши (№11).doc
Скачиваний:
3
Добавлен:
05.11.2018
Размер:
551.42 Кб
Скачать

2

Утверждаю

Ректор университета

______________А.В. Лагерев

«_____»_____________2006г.

Алгоритмические языки и программирование Работа с модулем мыши mouse.Tpu

Методические указания

к выполнению лабораторной работы №11

для студентов очной формы обучения

специальностей 075300 – "Организация и технология

защиты информации",

220300 – "Системы автоматизированного проектирования" Брянск 2006

УДК 004.43

Алгоритмические языки и программирование. Работа с модулем мыши MOUSE.TPU: методические указания к выполнению лабораторной работы №11 для студентов очной формы обучения специальностей 075300 – "Организация и технология защиты информации", 220300 – "Системы автоматизированного проектирования".– Брянск: БГТУ, 2006. - 11 с.

Разработал: Ю.А. Леонов, асс.

Рекомендовано кафедрой «Компьютерные технологии и системы» БГТУ (протокол № 1 от 6.09.06)

  1. Цель работы

Целью работы является овладение практическими навыками работы с модулем MOUSE.TPU.

Продолжительность работы – 3ч.00мин.

  1. Теоретическая часть

Модуль (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);

{Процедура, которая инициализирует переменную mouse данными, взятыми в ОС}

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 обычно используют в цикле, где проверяют состояние мыши. Там же программист задает реакцию (необходимые действия) на происходящие события.