Теоретическая часть. Алгоритмические языки и программирование

Алгоритмические языки и программирование

Работа с модулем мыши MOUSE.TPU

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

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

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

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

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

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

Брянск 2006


УДК 004.43

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

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

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


ЦЕЛЬ РАБОТЫ

Целью работы является овладение практическими навыками работы с модулем 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);

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: