Что такое код initgraph


Что такое код initgraph

Инициализирует графическую систему, устанавливает графический режим, ус-I.ш л вливает исходные значения текущего указателя, палитры, цвета и т. д.

GraphDriver — переменная, в которую необходимо записать код требуемого графического драйвера или нуль, если требуется автоматическое определение драйвера (см. табл. 18);

GraphMode — переменная, в которую процедура помещает код графического режима (см. табл. 17);

DriverPath — строка, содержащая путь к драйверу (если строка пустая, считается, что драйвер находится в текущем каталоге). В случае аварийной ситуации процедура устанавливает код ошибки:

-2 — нет графического адаптера;

-3 — нет драйвера устройства;

-4 — ошибка в драйвере;

-5 — нет памяти для загрузки драйвера;

-10 — недопустимый режим для выбранного драйвера.

почему initgraph не распознается в моей программе?

Я запрограммировал код для отображения меню GUI в Turbo C ++, но я не знаю, почему он не распознает initgraph

Это выходное сообщение
Ошибка BGI: графика не инициализирована
когда я попробовал более простую программу для графики в Turbo C ++, он сказал, что egavga.bgi не найден, но он был в файле bgi в моей папке turbo c ++
Также, когда я попытался поместить местоположение BGI в initgraph, он ничего не делает

это код программы

Решение

Возможные решения:
Скопируйте все файлы из папки BGI в BIN.
Проверьте, работает ли это.

Что такое код initgraph

После обращения к функции GraphResult признак ошибки сбрасывается, поэтому повторное обращение к ней вернет ноль.

Возвращает значение типа String, в котором по указанному коду ошибки дается соответствующее текстовое сообщение. Заголовок функции:

Function GraphErrorMsg(Code: Integer): String;

Здесь Code — код ошибки, возвращаемый функцией GraphResult.


Например, типичная последовательность операторов для инициации графического режима с автоматическим определением типа драйвера и установкой максимального разрешения имеет следующий вид:

Driver, Mode, Error:Integer;

if Error <> grOk then

Чаще всего причиной возникновения ошибки при обращении к процедуре InitGraph является неправильное указание местоположения файла с драйвером графического адаптера (например, файла CGA.BGI для адаптера CGA). Настройка на местоположение драйвера осуществляется заданием маршрута поиска нужного файла в имени драйвера при вызове процедуры InitGraph. Если, например, драйвер зарегистрирован в подкаталоге DRIVERS каталога PASCAL на диске D, то нужно использовать вызов:

InitGraph(Driver, Mode, ‘d:\Pascal\Drivers’);

Замечание. Во всех следующих примерах процедура InitGraph вызывается с параметром Driver в виде пустой строки. Такая форма обращения будет корректна только в том случае, когда нужный файл графического драйвера находится в текущем каталоге. Для упрощения повторения примеров скопируйте файл, соответствующий адаптеру Вашего ПК, в текущий каталог.

Завершает работу адаптера в графическом режиме и восстанавливает текстовый режим работы экрана. Заголовок:

Служит для кратковременного возврата в текстовый режим. В отличие от процедуры CloseGraph не сбрасываются установленные параметры графического режима и не освобождается память, выделенная для размещения графического драйвера. Заголовок:

Возвращает значение типа Integer, в котором содержится код установленного режима работы графического адаптера. Заголовок:

Function GetGraphMode: Integer;

Устанавливает новый графический режим работы адаптера. Заголовок:

Procedure SetGraphMode(Mode: Integer);

Здесь Mode — код устанавливаемого режима.

Следующая программа иллюстрирует переход из графического режима в текстовый и обратно:

Turbo Pascal Documentation

Процедура InitGraph

Модуль Graph

Функция: Инициализирует графическую систему и переводит
аппаратуру в графический режим.
Описание: InitGraph(var граф_драйвер : integer; var
граф_режим : integer; путь_драйвер : string)
Примечания: И параметр «граф-драйвер», и параметр
«граф-режим» являются параметрами-переменными (var).
Если параметр «граф_драйвер» равняется Detect(0), то
выполняется вызов процедуры DetectGraph, загружается соот-
ветствующий драйвер и выбирается графический режим.
Если параметр «граф_драйвер» не равен 0, то значение
этого параметра рассматривается, как номер драйвера. Этот
драйвер загружается и система переводится в режим, определя-
емый параметром «граф_режим». Заметим, что если значение ав-
томатического распознавания аппаратуры изменено, то вы
должны для требуемого драйвера обеспечить правильный пара-
метр «граф_режим».
Параметр «путь_драйвер» определяет путь доступа к ката-
логу (маршрут), в котором находятся графические драйверы.
Если этот параметр пуст, то подразумевается, что файлы драй-
веров содержатся в текущем каталоге.
С помощью обращения к процедуре GetМем в динамически
распределяемой области для графического драйвера выделяется
память. При обращении к процедуре CloseGraph эта память ос-
вобождается.
После обращения к процедуре InitGraph для параметра
«граф_драйвер» будет установлено значение, соответствующее
текущем графическому драйверу, а для параметра «граф_режим»
будет установлено значение, соответствующее текущему графи-
ческому режиму.
Если происходит ошибка, то процедура GrapDriver и функ-
ция GraphResult возвращают одно из следующих значений:

-2 — не обнаружена графическая плата;
-3 — не найден файл драйвера;
-4 — неверный драйвер;
-5 — для загрузки памяти недостаточно памяти.

Процедура InitGraph сбрасывает все графические парамет-
ры (текущий указатель, палитру, цвет, область просмотра и
т.д.) и устанавливает для них предусмотренные по умолчанию
значения.
Для установки поставляемый фирмами драйверов можно ис-
пользовать процедуру InstallDriver (более подробная информа-
ция содержится в описании процедуры InstallUserDriver).
Для каждого поддерживаемого графического драйвера опре-
делен ряд полезных констант:

Ограничения: Должен использоваться графический режим.
Прочее: См. также процедуры CloseGraph, DetectGraph,
RestoreCrtMode, SetGraphMode, GraphResult, InstallUser-
Driver, SetGraphBufSize, RegisterBGIDriver, RegisterBGIFont,
GraphDefaults.
Пример:


uses Graph;
var
grDriver : integer;
grMode : integer;
EmCode : integer;
begin
gDriver := Detect;
InitGraph(grDiver,grMode,»);
ErrCode := GraphResult;
it ErrCode <> grOk then
begin < выполнить графические функции >
Line(0, 0, GetMaxX, GetMaxY);
Readln;
CloseGraph;
end
else
Writeln(‘Ошибка графики : ‘,GraphErrorMsg(ErrCode));
end.

Ошибка BGI: графика не инициализирована (используйте initgraph). в DOSBOX. Win 7

Я дал местоположение папки bgi в моем диске C, как показано ниже:

Программа компилируется без каких-либо ошибок, но при запуске ничего не появляется.

Когда я нажимаю Alt + F5, я нашел эту ошибку. Как это решить?

Илон Маск рекомендует:  Lex и другие

Надеюсь, это поможет:

Теперь, поскольку мы знаем, что папка BGI обычно находится в следующем пути,

BGI находится внутри папки «TurboC3» и NOT «TC».

Таким образом, код, который вы должны добавить в свою программу, выглядит следующим образом:

Initgraph – инициализация графической системы

Функция

Инициализирует графическую систему.

Синтаксис

#include
void far initgraph(int far *graphdriver, int far *graphmode, char far *pathtodriver)

Прототип

Описание

Функция initgraph инициализирует графическую систему путем загрузки графического драйвера с диска (или подтверждения работоспособности зарегистрированного драйвера) и переводит систему в графический режим.

Для того чтобы запустить графическую систему, прежде всего нужно вызвать функцию initgraph. Функция initgraph загружает графический драйвер и переводит систему в графический режим. Можно указать графической системе использовать конкретный графический драйвер и режим или чтобы она сама определила в процессе работы привязанный к данной системе видеоадаптер и выбрать соответствующий драйвер.

Если указать initgraph автоопределение, то она вызывает detectgraph для выбора графического драйвера и режима. Функция initgraph также переустанавливает все графические параметры в их значения по умолчанию (текущая позиция, палитра, цвет, окно экрана, и т.д.) и переустанавливает grapgresult в 0.

Обычно initgraph загружает графический драйвер путем выделения памяти для драйвера (с помощью функции _graphgetmem), затем загружает соответствующий файл .BGI с диска. В противоположность этой схеме динамической загрузки, можно присоединить файл графического драйвера (или несколько таких файлов) непосредственно к выполняемым файлам. Смотрите более подробную информацию в файле UTIL.DOC, который поставляется вместе с системой.


Функция pathodriver определяет маршрут, по которому initgraph будет искать графические драйверы. Функция initgraph сначала ищет по маршруту, определяемому в pathtodriver, затем (если их там нет) ищет в текущем каталоге. Следовательно, если pathtodriver равен NULL, файлы драйвера (*.BGI) должны быть в текущем каталоге. Таким же путем settexstyle будет искать файлы (.CHR), содержащие шрифты.

Возвращаемое значение

Функция initgraph всегда устанавливает внутренний код ошибки. В случае успешного выполнения код равен 0. В случае же ошибки *graphdriver устанавливается в -2, -3, -4 или -5, и graphresult возвращает соответствующие значения, перечисленные ниже:
-2 — Не может определить тип графической карты (grNotDetected).
-3 — Не может найти файл драйвера (grFileNotFound).
-4 — Неправильный драйвер (grInvalidDriver).
-5 — Недостаточно памяти для загрузки драйвера (grNoLoadMem).

Переносимость

Функция уникальна для Borland C++. Она работает только на компьютерах IBM PC и совместимых с ними, оснащенных дисплейными адаптерами, поддерживающими графический режим. Функция не совместима с Windows.

Пример

#include
#include
#include
#include

int main(void)
<
/* требуется автоопределение */
int graphdriver = DETECT, gmode, errorcode;

/* инициализация графического режима */
initgraph(&graphdriver,&gmode,»»);

/* получение результата инициализации */
errorcode = graphresult();
if(errorcode != grOk) /* если ошибка */
<
printf(«Ошибка :%s\n»,grapherrormessage(errorcode));
printf(«Для останова нажмите любую клавишу\n»);
getch();
exit(1); /* завершение с кодом ошибки */
>
line(0,0,getmaxx(),getmaxy());

Что такое код initgraph

Инициализирует графическую систему, устанавливает графический режим, ус-I.ш л вливает исходные значения текущего указателя, палитры, цвета и т. д.

GraphDriver — переменная, в которую необходимо записать код требуемого графического драйвера или нуль, если требуется автоматическое определение драйвера (см. табл. 18);

GraphMode — переменная, в которую процедура помещает код графического режима (см. табл. 17);

DriverPath — строка, содержащая путь к драйверу (если строка пустая, считается, что драйвер находится в текущем каталоге). В случае аварийной ситуации процедура устанавливает код ошибки:

-2 — нет графического адаптера;

-3 — нет драйвера устройства;

-4 — ошибка в драйвере;

-5 — нет памяти для загрузки драйвера;

-10 — недопустимый режим для выбранного драйвера.

Инициализация и деинициализация графического режима


Читайте также:

  1. Алгоритм выбора режима ЭКС
  2. Арктика и Антарктика. Особенности правового режима.
  3. В XIX—XX вв. проявились признаки нового мирового демографического перехода — демографического взрыва.
  4. В различных режимах функционирования
  5. Ветствующего географического объекта товар, обладающий указан-
  6. Влияние режима нейтрали на условия электробезопасности.
  7. Влияние режима нейтрали сети на уровень перенапряжения
  8. Вставка рисунка из графического файла
  9. Выбор режима просмотра документа
  10. Выбор режима работы и информационной базы
  11. Вывод основного уравнения гидродинамики для турбулентного режима
  12. Гипотезы и сценарии демографического прогноза

Графическая библиотека инициализируется с помощью функции initgraph(). Ee прототип:

void far initgraph(int far *graphdriver,int far *graphmode,char far *pathtodriver);

Данная функция инициализирует графическую систему, загружая с диска графический драйвер и переводя систему в графический режим. Первый параметр задает тип адаптера. Это целое, значение которого соответствует определенному типу адаптера. В заголовочном файле числам с помощью директивы #define сопоставлены текстовые константы. Их значения: DETECT – 0, CGA – 1, MCGA – 2, EGA – 3,…, VGA – 9.

Наиболее часто используют значение DETECT — автоопределение. При этом система сама определяет тип видеоадаптера и выбирает для него режим наибольшего разрешения. Автоопределение производится путем обращения к функции detectgraph(). К этой функции можно обратиться и из программы. Функция имеет два параметра, совпадающие с первыми параметрами функции initgraph().

Обычно вызов detectgraph() необходим для изменения режима, который эта функция рекомендует для initgraph() по умолчанию. В случае ошибки (не подключена графическая библиотека, не идентифицирован тип адаптера и т.п.), функция initgraph() возвращает значение 2 или 3 или 4 или 5 в зависимости от типа ошибки. Ситуации, вызывающие ошибки, описаны в тексте помощи (Help) в оболочке TurboC (C++). В программе получить код ошибки можно с помощью функции graphresult(). Эта функция возвращает код завершения предыдущей графической операции. Успешному завершению соответствует константа grOk или 0.

Наиболее часто изменяют второй параметр функции initgraph()graphmode. Он определяет режим работы видеоадаптера. Если первый параметр определен как DETECT, draphmode не используется (не определяется программистом), т.к. по умолчанию выполняется настройка на максимальную разрешающую способность. Для каждого типа видеоадаптера имеется своя начинающаяся с 0 последовательность целых чисел, определяющая разрешение как количество точек и цветность. Для ранних типов адаптеров (например, CGA) это позволяло увеличить число точек ценой уменьшения количества цветов с 4 до 2. Для EGA и VGA остается 16 цветов, но уменьшается количество доступных страниц видеопамяти (см. далее). Более подробно о количественных данных можно узнать из Help. оболочки языка С (С++).

Илон Маск рекомендует:  Что такое вебинар Онлайн обучение и консультации.

Третий параметр функции initgraph() задает путь к каталогу, где initgraph() ищет графический драйвер и файлы со шрифтами. Если путь не задан (указана пустая строка » »), каталог считается текущим. При задании пути часто делают типичную ошибку:

…,»c:\tcpp\bgi»… — НЕВЕРНО …,»c:\\tcpp\\bgi». — ВЕРНО

Функция initgraph() при успешном завершении сбрасывает все графические параметры в значения по умолчанию (текущая позиция, палитра, цвет, графическое окно и т.д.) и устанавливает graphresult() в 0.

Для установки графического драйвера initgraph() выделяет требуемый объем памяти. Это производится при обращении к функции _graphgetmem(). Кроме драйверов в выделенной таким образом памяти размещаются внутренние буфера и наборы символов. По умолчанию функция _graphgetmem() распределяет память путем вызова malloc() с соответствующими параметрами. Таким образом осуществляется динамическая загрузка графического драйвера и всего другого, необходимого для графического режима. Достоинство — экономия памяти, недостаток — более длительное время за счет более частого обращения к диску при интенсивных переходах от текстового режима к графическому и наоборот.

Альтернативное решение — скомпоновать один или несколько графических драйверов вместе с исполняемым файлом. Для этого служит утилита BGIOBJ. Она преобразует файлы графических драйверов и шрифтов в объектные файлы. Затем эти файлы с помощью компоновщика включаются в объектный код. Достоинство — уменьшение обращений к диску («я все свое ношу с собой»). Недостаток — увеличение размера загрузочного модуля. Вызов:

BGIOBJ

Объектный файл создается с именем исходного и расширением .obj (например, EGAVGA.BGI преобразуется в EGAVGA.OBJ).

Можно объявить свою функцию с именем _graphgetmem()и изменить управление распределением памяти.

Чтобы освободить ресурсы, занятые графическим режимом, используют функцию closegraph(). Эта функция не имеет параметров. Освобождение ресурсов памяти осуществляется через вызовы функции _graphfreemem с указанием соответствующего адреса и размера. По умолчанию освобождение выполняется через вызовы функции free(). Аналогично _graphgetmem() можно запрограммировать свою стратегию освобождения. После отключения графического режима выполняется очистка экрана.

Пример BGI\ex1.c показывает, что установлен текстовый режим (выдается значение 1, которое в файле graphics.h определено как соответствующее текстовому режиму).

Пример BGI\ex2.c показывает перевод в графический режим и параметры этого режима.

Initgraph – инициализация графической системы


Функция

Инициализирует графическую систему.

Синтаксис

#include
void far initgraph(int far *graphdriver, int far *graphmode, char far *pathtodriver)

Прототип

Описание

Функция initgraph инициализирует графическую систему путем загрузки графического драйвера с диска (или подтверждения работоспособности зарегистрированного драйвера) и переводит систему в графический режим.

Для того чтобы запустить графическую систему, прежде всего нужно вызвать функцию initgraph. Функция initgraph загружает графический драйвер и переводит систему в графический режим. Можно указать графической системе использовать конкретный графический драйвер и режим или чтобы она сама определила в процессе работы привязанный к данной системе видеоадаптер и выбрать соответствующий драйвер.

Если указать initgraph автоопределение, то она вызывает detectgraph для выбора графического драйвера и режима. Функция initgraph также переустанавливает все графические параметры в их значения по умолчанию (текущая позиция, палитра, цвет, окно экрана, и т.д.) и переустанавливает grapgresult в 0.

Обычно initgraph загружает графический драйвер путем выделения памяти для драйвера (с помощью функции _graphgetmem), затем загружает соответствующий файл .BGI с диска. В противоположность этой схеме динамической загрузки, можно присоединить файл графического драйвера (или несколько таких файлов) непосредственно к выполняемым файлам. Смотрите более подробную информацию в файле UTIL.DOC, который поставляется вместе с системой.

Функция pathodriver определяет маршрут, по которому initgraph будет искать графические драйверы. Функция initgraph сначала ищет по маршруту, определяемому в pathtodriver, затем (если их там нет) ищет в текущем каталоге. Следовательно, если pathtodriver равен NULL, файлы драйвера (*.BGI) должны быть в текущем каталоге. Таким же путем settexstyle будет искать файлы (.CHR), содержащие шрифты.

Возвращаемое значение

Функция initgraph всегда устанавливает внутренний код ошибки. В случае успешного выполнения код равен 0. В случае же ошибки *graphdriver устанавливается в -2, -3, -4 или -5, и graphresult возвращает соответствующие значения, перечисленные ниже:
-2 — Не может определить тип графической карты (grNotDetected).
-3 — Не может найти файл драйвера (grFileNotFound).
-4 — Неправильный драйвер (grInvalidDriver).
-5 — Недостаточно памяти для загрузки драйвера (grNoLoadMem).

Переносимость

Функция уникальна для Borland C++. Она работает только на компьютерах IBM PC и совместимых с ними, оснащенных дисплейными адаптерами, поддерживающими графический режим. Функция не совместима с Windows.

Пример

#include
#include
#include
#include

int main(void)
<
/* требуется автоопределение */
int graphdriver = DETECT, gmode, errorcode;

/* инициализация графического режима */
initgraph(&graphdriver,&gmode,»»);

/* получение результата инициализации */
errorcode = graphresult();
if(errorcode != grOk) /* если ошибка */
<
printf(«Ошибка :%s\n»,grapherrormessage(errorcode));
printf(«Для останова нажмите любую клавишу\n»);
getch();
exit(1); /* завершение с кодом ошибки */
>
line(0,0,getmaxx(),getmaxy());

Графические средства языка Free Pascal


В этой главе описывается набор процедур и функций, унаследованный языком Free Pascal от ранней графической библиотеки BGI (Borland Graphics Interface). Он практически повторяет набор графических подпрограмм, реализованных в систе- мах Turbo Pascal и Borland Pascal, с единственным расширением, позволяющим более полно использовать разрешение современных дисплеев. Дополнительной особенностью графики системы Free Pascal является выделение консольному при- ложению двух окон (рис. 15.1).

Рис. 15.1. Главное и графическое окна приложения

В главном окне реализуются обычные интерфейсные взаимодействия между пользователем и приложением (ввод/вывод по операторам read/readln, write/writeln, readkey, keypressed), в дополнительном окне выполняются по- строения графических фигур и отображение пояснительных подписей с помощью процедур BGI.

Основные характеристики графического окна
Система координат

Рабочее поле графического окна, расположенное под заголовком окна, снабже- но системой координат, начало которой находится в левом верхнем углу. При этом ось y направлена вниз, а ось x — вправо. В качестве единиц измерения приня- ты пикселы экрана. Если традиционные дисплеи поддерживали довольно много режимов разрешения, при которых размер пикселов мог меняться в достаточно широком диапазоне, то современные плоские мониторы (плазменные и жидкокри- сталлические) обычно поддерживают один-два варианта разрешения. Как правило, основной рабочий режим современного монитора устанавливается под управлени- ем операционной системы и выбирается из соображений максимальной четкости изображений. Поэтому то, что раньше подразумевалось под разрешением экрана и было связано с изменением геометрических размеров пиксела, сегодня свелось к изменению размеров графического окна при сохранении физического размера пик- села. Таким образом, среди основных характеристик графического окна присутст- вуют два параметра, задающие ширину (MaxX) и высоту (MaxY) рабочего поля в пик- селах. Используя стандартные средства управления размерами окна, вы можете во время работы приложения изменить местоположение и габариты графического эк- рана, но параметры MaxX и MaxY, установленные при создании графического окна, при этом сохраняют свои первоначальные значения.

Илон Маск рекомендует:  Обобщение данных с помощью агрегатных функций
Графический курсор

Ряд графических процедур наряду с абсолютными координатами использует и относительные координаты, которые задаются в виде смещений (dx, dy) относи- тельно позиции текущей точки CP (от англ. Current Point). При создании графиче- ского окна текущая точка помещается в начало координат. Ее последующие пере- мещения зависят от выполняемых графических операций. Например, при построении отрезка прямой текущая точка переводится в конец отображаемого от- резка. При построении окружности положение текущей точки не изменяется. Те- кущую точку обычно называют графическим курсором, который в отличие от по- стоянно мигающего текстового курсора не изображается в графическом окне, чтобы не исказить выводимую картинку. Координаты текущей точки программа может опросить с помощью функций GetX и GetY.

Буфер графического окна

Все, что представлено на рабочем поле графического окна, является отображе- нием некоторого участка видеопамяти — буфера графического окна. Основным содержанием буфера являются коды цветности, в которые окрашен каждый пиксел рабочего поля. Для хранения кода цветности каждого пиксела в видеопамяти выде- ляется до 24 двоичных разрядов. В соответствии с этим изображение в графиче- ском окне может быть монохромным или цветным с более или менее насыщенной цветовой палитрой (16, 64, 256, 256 тыс. или 16 млн оттенков). Код цветности обычно представляет собой комбинацию интенсивностей трех базовых цветов — красного (R — Red), зеленого (G — Green) и синего (B — Blue).

В каждый конкретный момент графическая система имеет дело с двумя ранее установленными цветами — цветом рисования или цветом переднего плана (fore- ground color) и цветом фона или цветом заднего плана (background color). Цвету фона всегда соответствует нулевой программный код. На самом деле, это не ком- бинация цветов RGB, а номер специального регистра видеокарты, в котором нахо- дится настоящая комбинация базовых цветов. Так что цвет фона не всегда является только черным. Изменение содержимого указанного регистра производится с по- мощью процедуры SetBackgroundColor и сказывается только в тот момент време- ни, когда программа обращается к процедуре очистки графического экрана (Clear- Device).

В отличие от этого, изменение цвета переднего плана, осуществляемое с помо-

щью процедуры SetColor, в процедурах рисования сказывается мгновенно в мо- мент записи нового цвета пиксела в соответствующий участок видеопамяти. Ви- деокарта позволяет сформировать новый цвет пиксела с учетом его предыдущей окраски. Новый код цветности может заменить старый (простое вытеснение) или над обоими кодами может быть выполнена одна из логических операций — AND, OR или XOR. Обратите особое внимание на операцию исключающего «ИЛИ» (XOR), ко- торая используется для стирания или «проявления» изображений. Если на код цвета пиксела накладывается такой же двоичный код по операции XOR, то результат будет нулевым, что соответствует цвету фона или стиранию ранее окрашенной точки. Если на нулевой код цветности наложить прежний цвет пиксела, то точка на экране «проявится». Этой возможностью часто пользуются при анимации изображений.

Еще одна возможность быстрой смены изображений на экране обеспечивается наличием нескольких графических буферов. При достаточно большом объеме ви- деопамяти под хранение изображений может быть выделено две или более графи- ческих страниц (буферов). Одна из таких страниц объявляется видимой (Visual Page), и ее содержимое отображается в графическом окне, а другая — активной (Active Page). По умолчанию графическая страница с нулевым номером является одновременно и активной, и видимой. Поэтому результат действия процедур, вос- производящих тот или иной графический примитив, немедленно отображается на графическом экране. Мы можем объявить другую страницу активной:

После этой операции все графические процедуры будут заносить свои измене- ния в невидимое окно, а на экране по-прежнему будет отображаться содержимое нулевой страницы. Спустя некоторое время мы можем объявить первую страницу видимой:

И тогда ее содержимое мгновенно покажется на графическом экране. Так как время записи в активную страницу совмещено со временем отображения видимой страницы, то их переключение приводит к практически мгновенной смене кадров.

Создание графического окна

Создание графического окна и переход в режим выполнения графических опе- раций напоминает подготовку к работе с файлами. В жаргоне программистов бы- тует термин «открыть графику», и это надо сделать прежде, чем вы обратитесь к любой графической процедуре. Выполняется эта операция с помощью процедуры InitGraph:

Два первых ее аргумента — имена переменных типа SmallInt. Переменная gd символизирует номер, под которым система FP хранит одну из служебных про- грамм, реализующих операции обмена с графическим экраном. Программы такого рода принято называть графическими драйверами (graphics driver). Переменная gm предназначена для хранения числового кода, определяющего режим, который дол- жен поддерживать графический драйвер (graphics mode). Приведенные имена пе- ременных являются аббревиатурами соответствующих английских терминов (но вы можете использовать и любые другие имена). Третий аргумент процедуры In- itGraph, представленный пустой строкой, должен указывать путь к каталогу, в ко- тором находится драйвер. Отсутствие значения этого параметра говорит о том, что компилятор должен сам найти нужную программу.

Что касается значения переменной gd, то ее обычно задают равной нулю. Это означает, что система FP должна сама опросить параметры графического оборудо- вания компьютера и выбрать подходящие значения переменных gd и gm. В даль- нейшем программист этими переменными не пользуется, но и не должен затирать их значения.

Опытный программист, часто имеющий дело с графическими режимами, пе- ред открытием графики может сам задать нужные ему значения переменных gd, gm. Для их выбора можно прибегнуть к услугам табл. 15.1 и 15.2 или файлам по- мощи.

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL