Процедура InitGraph

Модуль GRAPH

Инициализирует графическую систему и переводит видеокарту в графический режим.

Объявление:

Procedure InitGraph (Var GraphDriver : Integer; Var GraphMode : Integer;
                                                  PathToDriver : String);

Режим:

Real, Protected

Замечание:

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

Если значение GraphDriver не равно нулю, то в качестве номера драйвера принимается значение параметра GraphDriver. Видеосистема переходит в режим, определенный параметром GraphMode. Если вы отменяете автоопределение, то вы должны задать допустимый номер видеорежима для выбранного драйвера.

Параметр PathToDriver определяет путь к каталога, где находится нужный графический драйвер. Если строка PathToDriver равна пустой строке, то поиск файла драйвера производится в текущем каталоге.

Обычно, InitGraph загружает графический драйвер, рапределяя память для него через обращение к GraphGetMem, а затем загружает соответствующий *.BGI файл с диска. Как вариант такой динамической схемы загрузки, вы можете встроить файл драйвера (или несколько файлов) непосредственно в исполняемый файл вашей програмы.

Это можно сделать так:
1. Преобразуйте *.BGI файл в *.OBJ файл (используя утилиты BINOBJ или BGIOBJ)
2. В тексте программы поместите обращение к функции RegisterBGIDriver перед вызовом InitGraph для того, чтобы зарегистрировать графический драйвер.

Когда вы формируете вашу программу, вы должны скомпоновать с ней *.OBJ файлы для зарегистрированных драйверов. Вы можете также загрузить BGI драйвер в кучу, а затем зарегистрировать его вызвав функцию RegisterBGIDriver.

Если в куче была распределена память для графического драйвера с использованием процедуры GraphGetMem, то при вызове процедуры CloseGraph она будет освобождена.

После вызова InitGraph, значение переменной GraphDriver устанавливается к значению текущего графического драйвера, а значение GraphMode устанавливается к значению текущего графического режима.

Если происходит ошибка, то в переменной GraphDriver и в функции GraphResult будет возвращена одна из следующих grXXXX констант: grNotDetected, grFileNotFound, grInvalidDriver, grNoLoadMem или grInvalidMode.

Если количество памяти, требуемое для сохранение области больше или равно 64Кб, то возвращается значение равное нулю, и функция GraphResult возвращает значение -11 (grError).

Пример:

{ Пример программы для процедуры InitGraph }

Uses Graph;

Var grDriver : Integer;
      grMode : Integer;
     ErrCode : Integer;

Begin
 grDriver:=Detect;
 InitGraph(grDriver, grMode, '');
 ErrCode:=GraphResult;
 If ErrCode = grOk Then
  Begin
   { Графика }
   Line(0, 0, GetMaxX, GetMaxY);
   ReadLn;
   CloseGraph;
  End
 Else WriteLn('Ошибка инициализации графики:', GraphErrorMsg(ErrCode));
End.