Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Чернов Шафеева.doc
Скачиваний:
47
Добавлен:
21.05.2015
Размер:
1.39 Mб
Скачать

2.14.2. Модуль graph

Модуль Graph содержит типы, константы, переменные и подпрограммы, обеспечивающую полное управление графическими режимами для различных адаптеров дисплеев: EGA, VGA, SVGA и т.д. Содержит 78 процедур и функ­ций (как базовых  для рисования точек, линий, окружностей, прямоу­гольников), так и расширяющих возможности базовых (для многоугольни­ков, секторов, дуг, вывода текста, закрашивания фигур и т.д.).

Для запуска программы с использованием модуля GRAPH необходимо, чтобы в рабочем каталоге находились графические драйверы с расширением .BGI, также должен быть доступен компилятору модуль GRAPH.TPU.

В начале программы модуль GRAPH должен быть подключен строкой

USES GRAPH;

далее описываются метки и переменные программы, в частности

Var driver, Mode: integer переменные драйвера и режима.

В основном блоке программы инициализируется графический режим ра­боты процедурой

InitGraph(<тип драйвера>,<видеорежим>: integer;

<путь к графическому драйверу>: string);

Тип драйвера допускается указывать равным нулю, тогда он устанав­ливается по результатам тестирования (автоопределение). Путь определя­ет маршрут поиска графического драйвера, описываемый строковым типом. Структура программы, работающей в графическом режиме, имеет вид

USES GRAPH;

VAR driver, mode: integer;

Begin

DetectGraph(var Driver, Mode); {возвращает тип драйвера и текущий

режим его работы (0<Driver<10, 0<Mode<5)}

InitGraph(driver, mode, 'E:\BP\BGI');

. . . {текст программы}

CloseGraph; {закрывает графический режим}

End.

Графическая информация на экране дисплея отражается совокупностью светящихся точек - пикселей. Возможные режимы по вертикали: 0 - 200 пикселей (4 страницы), 1  350 пикселей (2 страницы), 2  480 пикселей (1 страница). Так в графическом режиме 2 координаты верхнего левого угла  (0,0), нижнего правого угла  (639,479), центра (319,239).

В Турбо Паскале используются следующие основные цвета:

0  черный,

6  коричневый,

1  синий,

7  светло-серый,

12  розовый,

2  зеленый,

8  темно-серый,

13  светло-фиолетовый,

3  голубой,

9  светло-синий,

14  желтый,

4  красный,

10  светло-зеленый,

15  белый,

5  фиолетовый,

11  светло-голубой,

128 – мерцание.



Модуль GRAPH включает помимо рассмотренных следующие процедуры и функции.

Управление графическим режимом

GetDriverName: string; возвращает имя текущего драйвера.

GetGraphMode: Integer; возвращает номер текущего графического режима.

GetMaxMode: Integer; возвращает количество возможных режимов текущего драйвера.

GetModeName(ModeNumber: Integer): string; возвращает имя графи­ческого режима по его номеру ModeNumber.

GetModeRange(GraphDriver:Integer; var LoMode, HiMode:Integer); возвращает минимальный и максимальный номера графических режимов драйвера, где GraphDriver  код драйвера, LoMode, HiMode  номера со­ответственно мини- мального и максимального режимов.

GraphDefaults; восстанавливает исходные параметры графического режима.

GraphErrorMsg(ErrorCode: Integer): string; возвращает сообщение об ошибке для заданного кода ошибки ErrorCode.

GraphResult: Integer; возвращает код ошибки последней графичес­кой операции.

InstallUserDriver(Name: string; AutoDetectPtr: pointer): integer; размещает драйвер в таблице BGI-драйверов. Name  имя драйвера, Au­toDetectPtr  адрес.

InstallUserFont(FontFileName: string): Integer; устанавливает новый шрифт из файла FontFileName (шрифт следует предварительно заре­гистрировать).

RegisterBGIdriver(driver: pointer): Integer; регистрирует гра­фический драйвер Driver и возвращает значение меньше 0, если инициали­зация не выполнена. Выполняется до InitGraph.

RegisterBGIfont(Font: pointer): Integer; регистрирует загружен­ный в память шрифт Font и возвращает число меньше 0, если регистрация не возможна.

RestorCRTMode; восстанавливает текстовый режим работы.

SetGraphBufSize(BufSize: Word); изменяет размер графического буфера, используемого для сканирования и заполнения фигур (по умолча­нию размер буфера равен 4 Кб).

SetGraphMode(Mode:integer); устанавливает новый графический ре­жим, исходные значения текущего указателя курсора, палитры, цвета и т. д., очищает экран.