19.2.1. Инициализация и закрытие графического режима

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

InitGraph( VAR GraphDriver : Integer; { тип адаптера }

| VAR GraphMode : Integer; { режим графики }

DriverPath : String ); { путь к драйверу }

В модуле Graph определены константы для задания вида графического адаптера параметром GraphDriver перед вызовом InitGraph (последняя константа введена для вызова процедуры GetModeRange уже после инициализации):

CONST

Detect =0; { автоопределение }

CGA =1; { адаптер CGA }

MCGA =2; { адаптер MCGA }

EGA =3; { адаптер EGA 256K }

EGA64 =4; { адаптер EGA 64K }

EGAMono =5; { EGA с моно-дисплеем }

IBM8514 = 6; { адаптер 8514 }

HercMono = 7; { адаптер Hercules }

ATT400 =8; {для ПЭВМ AT&T }

VGA = 9; { адаптер VGA }

PC3270 =10; { адаптер 3270 }

CurrentDriver =-128; { для GetModeRange }

Если параметру GraphDriver присвоить значение константы Detect, то система включится в режим автоопределения. Если возможно переключение системы в графический режим, то инициализируется соответствующий BGI-драйвер и включается режим с максимальным разрешением. В параметрах GraphDriver и

- 408 -

GraphMode при этом будут возвращены автоматически выбранные значения или код ошибки.

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

Если же параметр GraphDriver содержит номер конкретного адаптера, то и второй параметр, GraphMode, должен иметь значение (номер) режима, допустимого при этом адаптере.

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

Параметр DriverPath указывает путь в каталог, содержащий файлы с необходимыми драйверами. Если в него передается значение '' (пустая строка), то драйверы должны находиться в текущем каталоге. Это же значение должно передаваться DriverPath, если необходимые BGI-файлы преобразованы при помощи утилиты BINOBJ в файлы типа .OBJ, а затем скомпанованы с программой в EXE-файл.

Пример инициализации графического режима приведен на рис. 19.1 (в разд. 19.2.2).

19.2.1.2. Процедура CloseGraph. Для окончательного завершения работы в графическом режиме необходимо всегда производить вызов процедуры CloseGraph. Эта процедура не имеет параметров. Она очищает экран, переводит адаптер в текстовый режим и, если возможно, выгружает из памяти все BGI-драйверы и штриховые шрифты. Последующий возврат в графические режимы возможен только через повторную инициализацию