Иллюстрированный самоучитель по Turbo Pascal

Процедуры и функции

Пусть, например, драйвер 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{Нет ошибки}
…….
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.