IPB

> BGI Error: Graphics not initialized (use InitGraph)
Форум
Загрузка...
 
Час быка
Час быка
Карта Интернета
Internet Map
Яндекс.Метрика

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

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

Пример полной программы:

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 не затронут.

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

InitGraph(GrDriver, GrMode, '');

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

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

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

Скачать EGAVGA.BGI

EGAVGA.BGI

School Pak

Не все версии Turbo Pascal одинаково хороши. Надоело докачивать довески? Пора установить Turbo Pascal School Pak

 
 К началу страницы 
 

Код для вставки: :: :: :: ГОСТ ::
Поделиться: //
 


-
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"