Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебно-методическое пособие по Паскалю.doc
Скачиваний:
7
Добавлен:
25.04.2019
Размер:
398.34 Кб
Скачать

10.2.2 Модуль Graph

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

Для подключения модуля Graph, как и любого другого модуля, необходимо внести его имя в предложении USES. Однако этого недостаточно для того, чтобы перейти в графический режим. Инициализация графического режима работы осуществляется процедурой

INITGraph (A,B: Integer;C:String)

где переменная А определяет тип графического драйвера, В задает режим работы адаптера, С содержит имя файла драйвера и, возможно, полный путь до него.

Тип драйвера должен соответствовать типу адаптера. В настоящее время используется в основном тип VGA, соответствующий цифре 9, однако, если вы не уверены, что правильно установили тип адаптера, можете воспользоваться режимом автоопределения типа – Detect. Третий параметр может быть пустым, но только в том случае, если файл драйвера находится в текущем каталоге. Для VGA-адаптера необходим файл EGAVGA.BGI.

Uses Graph;

Var A, B : Integer;

Begin

A := detect;

InitGraph (A,B,’C:\TP7\BGI’);

……………..

End.

Подпрограммы Graph позволяют адресоваться к любому пикселю графического экрана и управлять его светимостью. Для указания пикселя используется следующая система координат: верхний левый угол графического экрана имеет координаты 0,0; горизонтальная координата Х увеличивается слева направо, вертикальная координата У – сверху вниз. Например, в режиме 640х480 (адаптер VGA) правый нижний угол экрана имеет координаты 639х479, а центр экрана – координаты 319х239.

В модуле имеется несколько процедур для рисования элементарных графических фигур - точек, линий, окружностей, прямоугольников, дуг и т.п. При необходимости замкнутые фигуры могут быть закрашены различными цветами и стилями.

Процедура SetViewPort создает на экране графическое окно. Если окно определено, весь дальнейший графический вывод осуществляется относительно координат этого окна и отсекается его границами.

В модуле имеются средства хранения и выдачи изображений, работы с несколькими графическими страницами, установки необходимых цветов.

10.2.3 Модуль Overlay

Он необходим при разработке больших программ с перекрытиями. Максимальный размер модуля не может превышать 64 кб, однако количество модулей не ограничено, что дает возможность разрабатывать очень крупные программы. И все же в некоторых случаях и этот объем может оказаться недостаточным. С помощью оверлея можно создавать программы практически неограниченной длины.

Оверлей – это такой способ использования оперативной памяти, при котором в один и тот же участок памяти (оверлейный буфер) попеременно по мере надобности загружаются различные оверлейные модули. При этом все оверлейные модули хранятся на диске, а в оперативной памяти в каждый момент времени находится лишь один активный модуль и, возможно, несколько неактивных. При исполнении оверлейной программы в память загружается главная часть и один из модулей, например, модуль А. Если в процессе исполнения программы встретится обращение к модулю В, то с диска в оверлейный модуль будет загружен этот модуль (модуль А при этом частично разрушается), после чего программа продолжит свою работу.

Таким образом объем оперативной памяти, занимаемый оверлейной программой, определяется длиной ее главной части и наибольшего из перекрывающихся модулей. Однако оверлейная программа обладает меньшей скоростью работы, т.к. на каждую загрузку оверлейного модуля с диска в оверлейный буфер требуется дополнительное время.

Алгоритм создания оверлейных программ:

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

  2. В главной части программы указать с помощью директив компилятора {$O <имя>} те модули, которые будут оверлейными.

Program Over;

Uses DOS, Overlay, UnitA, UnitB;

{$O UnitA}

{$O UnitB}

{$O DOS}

Прим: из всех стандартных модулей только модуль DOS может быть оверлейным.

  1. Осуществить вызов процедуры инициализации оверлея OVRINIT перед первым обращением к оверлейному модулю.

  2. В начале главной программы и каждого оверлейного модуля поместить директивы компилятора {$O+} {$F+} (разрешить создание оверлейной структуры и использовать дальнюю модель вызова), после чего откомпилировать программу на диск.