Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция по графическому режиму.doc
Скачиваний:
5
Добавлен:
21.02.2016
Размер:
115.2 Кб
Скачать

Тема лекции: «Графический режим среды Turbo Pascal»

1. Краткие сведения о графическом режиме

В состав Турбо Паскаля включена мощная библиотека для работы с графикой Graph. Библиотека содержит процедуры и функции, которые дают возможность программисту управлять графическим экраном.

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

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

Драйвер – это специальная программа, которая осуществляет управление определенными техническими средствами компьютера.

Графический драйвер управляет дисплейным адаптером в графическом режиме. В комплекте программ фирмы Borland содержаться графические драйвера в виде файлов с расширением bgi.

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

Графические возможности конкретного адаптера определяются:

  • разрешением экрана – общим количеством пикселей;

  • количеством цветов (оттенков), которыми может светиться любой из них;

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

Характеристики наиболее распространенных адаптеров

Название

Разрешение

Количество цветов

Количество страниц

Комментарий

CGA

320 х 200

640 х 200

4

2

1

Цветной ГА

EGA

640 х 200

640 х 350

16

16

4

1

Усиленный ГА Дублирует CGA

MCGA

640 х 480

2

1

Многоцветный ГА

VGA

640 х 480

16

1

Графический видеомассив

SVGA

800 х 600

256

1

Супер VGA. Отсутствует в библиотекеgraph

HGC

720 х 348

2

ГА фирмы Hercules

Например, для работы с адаптерами типа EGA, VGA используется драйвер EGAVGA.BGI.

2. Подпрограммы для переключения между текстовым и графическим режимами

Процедура InitGraph предназначена для инициализации графического режима работы адаптера.

Procedure InitGraph (var Driver, Mode : Integer; Path : String);

Driver – параметр определяет тип графического драйвера;

Mode – параметр задает режим работы графического адаптера;

Path – имя файла драйвера или путь к директории, где расположен файл драйвера.

Если Path=’’, тогда файл драйвера должен находиться в текущей директории программы.

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

Для указания драйвера в графической библиотеке определены константы CGA, EGA, VGA, Detect (режим автоопределения типа адаптера).

Большинство адаптеров могут работать в различных режимах.

Например, для адаптера VGA предусмотрены такие режимы работы:

VGALo – 640 x 200

VGAMed – 640 x 350

VGAHi – 640 x 480

Например,

Uses Graph;

Var

Driver, Mode : Integer;

Begin

Driver := VGA;

Mode := VGAHi;

InitGraph(Driver,Mode,’C:\Lang\BP\BGI’);

End.

Если тип адаптера не известен или программа рассчитана на работу с любым адаптером, тогда используется следующее обращение к процедуре с автоматическим определением типа драйвера:

Uses Graph;

Var

Driver, Mode : Integer;

Begin

Driver := Detect;

InitGraph(Driver,Mode,’C:\Lang\BP\BGI’);

End.

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

Для определения результата инициализации графического режима необходимо использовать функцию GraphResult. Функция возвращает целое число, в котором закодирован результат последнего обращения к графическим процедурам. Если ошибка не обнаружена, то функция возвращает 0 (grOK=0), в противном случае – код ошибки.

Функция GraphErrorMsg возвращает текстовое сообщение, которое соответствует указанному коду ошибки: