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-драйверы и штриховые шрифты. Последующий возврат в графические режимы возможен только через повторную инициализацию