Процедура InitGraph

Модуль Graph

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

Объявление:

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

Режим: 

Замечания:

Если значение параметра 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.

Пример:

 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.
 

Пример программы: initgrf.pas

См. также: