BGI Error: Graphics not initialized (use InitGraph)

School Pak | RTL Pak
Главная
Инструкция
Скачать
Linux
Mac OS X
Скриншоты
Болельщикам
Полезности
Идеи

Почему может возникать эта ошибка?

Начнём с простого. А вызывается ли InitGraph вообще? Как вызвать InitGraph? OK, показываю:

uses Graph;

var
  ErrorCode        : Integer;
  GrDriver, GrMode : Integer;

begin
  GrDriver := Detect;
  InitGraph(GrDriver, GrMode, 'X:\BP');
  ErrorCode := GraphResult;
  if ErrorCode <> grOk then
  begin
    WriteLn('Ошибка инициализации графики:');
    WriteLn(GraphErrorMsg(ErrorCode));
    Halt(1);
  end;
  ClearDevice;
  SetColor(White);
  Rectangle(0, 0, GetMaxX, GetMaxY);
  Line(0, 0, GetMaxX, GetMaxY);
  Line(0, GetMaxY, GetMaxX, 0);
  ReadLn;
  CloseGraph;
end.
В School Pak по–хорошему должно быть 'X:\BP', но, начиная с версии 1.3 это уже не важно, всё равно будет работать. Просто надоело бодаться с пользователями, не читающими даже тот текст, который показывается при установке, и решил, что так будет лучше. Сделано всё с помощью резидента, резидент работает только внутри School Pak, модуль Graph не затронут.

В других версиях вместо 'X:\BP' должен быть путь к BGI драйверам (например, 'C:\BP\BGI' или 'C:\TP7'). Как вариант, можно EGAVGA.BGI положить в один каталог с программой, тогда должно быть InitGraph(GrDriver, GrMode, '');

Все пути указаны, EGAVGA.BGI на месте, а графика всё равно не инициализируется? Я знаю, почему это может быть. Нужно убедиться, что этот файл доступен для записи. У него не должно быть атрибута только–чтение, прав должно хватать для записи. Файл не может быть находиться на CD или DVD. В этот файл никогда ничего не пишется, но он открывается на запись. А если не получается открыть на запись, то не открывается никак.

Глупо, правда? Я знаю. В School Pak эта ошибка исправлена. Судя по всему, это единственная версия, где исправили эту ошибку. И не только эту.

Если School Pak использовать ну никак нельзя, а проблему надо решить, добавьте команду FileMode := 0; перед InitGraph.

Ссылка–ответ

Для блогов:

<a href="http://dim-hj.gorodok.net/specific/bgi-error-graphics-not-initialized-use-initgraph.htm">BGI Error: Graphics not initialized (use InitGraph)</a>

Для форумов:

[url=http://dim-hj.gorodok.net/specific/bgi-error-graphics-not-initialized-use-initgraph.htm]BGI Error: Graphics not initialized (use InitGraph)[/url]