Часто причиной возникновения ошибки при инициализации графического режима служит неправильное указание местоположения файла Graph.tpu или файла с драйвером графического адаптера (например EGAVGA.bgi для адаптера VGA). Для исправления ошибки проверьте параметры настройки среды Турбо-Паскаль.
Для этого в команде OPTIONS-DIRECTORIES в пункте Unit_Directories необходимо указать каталог, где размещен файл Graph.tpu. Местоположение драйвера задается указанием пути к файлу в качестве фактического параметра DriverPath процедуры InitGraph. Если тип адаптера ПЭВМ неизвестен, можно использовать режим автоматического определения константой Detect. При этом устанавливается графический режим экрана, а переменные Driver и Mode будут содержать значения драйвера ПЭВМ и максимально возможный графический режим его работы.
Пример. Файл драйвера графического адаптера на диске С в каталоге TP.
Driver:=Detect;
InitGraph(Driver,Mode,'c:\tools\tp5\bgi')
Для анализа обращения к графической библиотеке можно использовать функцию GraphResult, которая возвращает значение 0, если ошибок нет, и отрицательное значение при обнаружении ошибок графики. Для дальнейшего использования этой функции необходимо сохранить ее результат в какой-либо переменной. Список ошибок графического режима дан в приложении 2.
Функция GraphErrorsMsg(Code):string преобразует код ошибки, обнаруженной с помощью GraphResult в ее соответствующее текстовое сообщение .
Завершение работы в графическом режиме и выход в текстовый выполняется процедурой CloseGraph. При этом все графические установки сбрасываются и экран переводится в текстовый режим работы.
Пример.
EGAVGA.BGI находится на диске А в каталоге ТР. Выбран режим
работы VGA.
USER Graph;
Var Driver,Mode,Error:integer;
Begin
Driver:= VGA;
Mode:= 0;
InitGraph (Driver, Mode,'A:\TP');
Error:= GraphResult;
If Errors <>0 then writeln('ошибка:',GraphErrorMsg(Error))
else {начало работы с графикой}
......
CloseGraph
End.
SetGraphMode(Mode:Integer) - процедура установки нового режима работы графического адаптера с заданием атрибутов по умолчанию и очисткой экрана. Текущий указатель помещается в точку (0,0).
RestoreCrtMode - процедура временной приостановки работы в графическом режиме и восстановление текстового режима работы экрана, установленного перед инициализацией графики. В отличие от процедуры CloseGraph установленные параметры графического режима не сбрасываются. Восстановить графический режим можно вызовом процедуры SetGraphMode(GetGraphMode).