Процедуры и функции
Пусть, например, драйвер CGA.BGI находится в каталоге TP\BGI на диске С и устанавливается режим работы 320x200 с палитрой 2. Тогда обращение к процедуре будет таким:
Uses Graph; var Driver, Mode: Integer; begin Driver: = CGA;{Драйвер} Mode: = CGAC2;{Режим работы} InitGraph(Driver, Mode,' С:\TP\BGI'); …….
Если тип адаптера ПК неизвестен или если программа рассчитана на работу с любым адаптером, используется обращение к процедуре с требованием автоматического определения типа драйвера:
Driver: = Detect; InitGraph(Driver, Mode, 'C:\TP\BGI');
После такого обращения устанавливается графический режим работы экрана, а при выходе из процедуры переменные Driver и Mode содержат целочисленные значения, определяющие тип драйвера и режим его работы. При этом для адаптеров, способных работать в нескольких режимах, выбирается старший режим, т.е. тот, что закодирован максимальной цифрой. Так, при работе с CGA – адаптером обращение к процедуре со значением Driver = Detect вернет в переменной Driver значение 1 (CGA) и в Mode – значение 4 (CGAHi), а такое же обращение к адаптеру VGA вернет Driver = 9 (VGA) и Mode = 2 (VGAHi).
Функция GraphResult
Возвращает значение типа Integer, в котором закодирован результат последнего обращения к графическим процедурам. Если ошибка не обнаружена, значением функции будет ноль, в противном случае – отрицательное число, имеющее следующий смысл:
const grOk = 0;{Нет ошибок} grlnitGraph = -1;{He инициирован графический режим} grNotDetected = -2;{Не определен тип драйвера} grFileNotFind = -3;{Не найден графический драйвер} grlnvalidDriver = -4;{Неправильный тип драйвера} grNoLoadMem = -5;{Нет памяти для размещения драйвера} grNoScanMem = -6;{Нет памяти для просмотра областей} grNoFloodMem = -7;{Нет памяти для закраски областей} grFontNotFound = -8;{Не найден файл со шрифтом} grNoFontMem = -9;{Нет памяти для размещения шрифта} grlnvalidMode = -10;{Неправильный графический режим} grError = -11;{Общая ошибка} grIOError = -12;{Ошибка ввода-вывода} grlnvalidFont = -13;{Неправильный формат шрифта} grInvalidFontNum= -14; {Неправильный номер шрифта}
После обращения к функции GraphResult признак ошибки сбрасывается, поэтому повторное обращение к ней вернет ноль.
Функция GraphErrorMsg
Возвращает значение типа String, в котором по указанному коду ошибки дается соответствующее текстовое сообщение. Заголовок функции:
Function GraphErrorMsg(Code: Integer): String;
Здесь Code – код ошибки, возвращаемый функцией GraphResult.
Например, типичная последовательность операторов для инициации графического режима с автоматическим определением типа драйвера и установкой максимального разрешения имеет следующий вид:
var Driver, Mode, Error:Integer; begin Driver: = Detect;{Автоопределение драйвера} InitGraph(Driver, Mode,' ');{Инициируем графику} Error: = GraphResult;{Получаем результат} if Error <> grOk then{Проверяем ошибку} begin{Ошибка в процедуре инициации} WriteLn(GraphErrorMsg(Error));{Выводим сообщение} ……. end else{Нет ошибки} …….