Пример программы

Ниже приведен пример программы, использующей модуль мыши, которая выводит на экран курсор мыши и его текущие координаты.

 

uses crt, graph, mouse; Var x, y: integer; strx, stry: string; oldx, oldy: integer; rec: locrec; gDriver, gMode: integer; Begin gDriver:=Detect; gMode:=0; InitGraph(gDriver, gMode,'C:\BP7\BGI'); mshow; mcolrange(40,GetMaxX-40);   mrowrange(40,GetMaxY-40); line(40,40,GetMaxX-40,40); line(40,40,40,GetMaxY-40); line(40,GetMaxY-40,GetMaxX- 40,GetMaxY-40); line(GetMaxX-40,40,GetMaxX- 40,GetMaxY-40); mpos(rec);     oldx:=rec.column; oldy:=rec.row;   mmoveto(40,40);   repeat mpos(rec); x:=rec.column; y:=rec.row; if ((x<>oldx)OR(y<>oldy)) then begin SetColor(BLACK);   OutTextXY(2, 2, ' '); OutTextXY(2, 14,' ');   SetColor(LIGHTGRAY);   Str(x, strx); Str(y, stry);     OutTextXY(2, 2, 'x='+strx); OutTextXY(2, 14, 'y='+stry); end; oldx:=x; oldy:=y; until keypressed; CloseGraph; End.   {подключает необходимые модули} {объявляем необходимые переменные}   {инициализация графического режима} {показываем курсор мыши} {устанавливаем минимальные и максимальные границы движения курсора мыши} {рисуем зону движения курсора мыши}     {данные, возвращаемые в структуре rec, будут сообщать текущее состояние мыши} {присваиваем переменным oldx и oldy значения координат текущего состояния мыши} {перемещаем курсор мыши в заданные координаты} {программа будет выполнять действия этого цикла, пока мы не нажмем клавишу}   {сравним «старые» и «новые» координаты мыши, если положение мыши изменилось, то выполним следующие действия}   {очищаем две строки, где выводится x и y, для этого необходимо между апострофами поставить спец. символ из ASCII с кодом 219 (удерживая клавишу «ALT», наберите код и отпустите клавишу)}   {преобразуем целочисленные значения x и y в строки strx и stry и выводим координаты положения мыши на экран}   {закрываем графический режим}  

Список заданий

Необходимо на языке Pascal написать программу, которая будет реализовывать построение графических примитивов, приведенных в таблице.

Таблица

№ варианта Образец Задания
прямоугольники
линии
ломанные
эллипсы
параллелепипеды
окружности
крестики
треугольники
лабиринты

 

Продолжение табл.

№ варианта Образец Задания
окружности, вписанные в квадрат
квадраты, вписанные в окружности
окружности, вписанные в треугольник
замкнутые ломанные
кубы
треугольники, вписанные в окружности
секторы
дуги
произвольные линии (эффект карандаша)
мозаики
ячейки

Окончание табл. 1

№ варианта Образец Задания
олимпийские кольца
  любой из государственных флагов
квадраты
узоры из квадратов

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Для чего необходима структура locrec?

2. Какое назначение имеет каждое поле структуры locrec?

3. Какой процедурой вызывается появление курсора мыши на экран?

4. Каким образом можно узнавать текущее состояние мыши?

5. Чем процедура mpressed отличается от процедуры mreleased? Объясните принцип их работы.

6. Для чего используются процедуры mpos, mpressed, mreleased и где они применяются?

7. Как задать область перемещения курсора мыши?

СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ

1. Марченко, А.И. Программирование в среде Turbo Pascal 7.0. / А.И. Марченко, Л.А. Марченко. – М.: Бином Универсал, К.: ЮНИОР, 1997. – 496с.

2. Немнюгин, С.А. Turbo Pascal: практикум / С.А. Немнюгин. – 2-е изд. – СПб.: Питер, 2004. – 272с.

3. Фаронов, В.В. TurboPascal 7.0: Практика программирования: учеб. пособие. – М.: Изд.: ОМД Групп, 2001. – 416с.


 

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

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

 

 

Леонов Юрий Алексеевич

 

 

Научный редактор Ю.М. Казаков

Редактор издательства Л.И. Афонина

Компьютерный набор Ю.А. Леонов

 

Темплан 2006г., п. 163

 

Подписано в печать Формат 60х84 1/16. Бумага офсетная. Офсетная печать. Усл. печ. л. 0,63 Уч. – изд. л. 0,63 Тираж 50 экз. Заказ . Бесплатно.

 

Издательство брянского государственного технического университета, 241035, Брянск, бульвар 50-летия Октября, 7, БГТУ. 54-90-49

Лаборатория оперативной полиграфии БГТУ, ул. Харьковская, 9