Почему может возникать эта ошибка?
Начнём с простого. Как вызывается InitGraph?
Пример полной программы:
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 положить в один каталог с программой, тогда должно быть
Скачать EGAVGA.BGI
School Pak
Не все версии Turbo Pascal одинаково хороши. Надоело докачивать довески? Пора установить Turbo Pascal School Pak