Таблиця 8

Назва Режим Розмір екрану (в піксилях) Кількість Кольорів Кількість відеосторінок
CGA CGAC3=3 CGAHI=4 320 х 200 640 х 200
EGA EGALO=0 EGAHI=1 640 х 200 640 х 350
VGA VGALO=0 VGAMED=1 VGAHI=2 640 х 200 640 х 350 640 х 480
IBM8514 IBM8514=1 1024 х 768

 

Для ініціалізації графічного режиму, тобто для завдання його основних характеристик, використрвується процедура:

InitGraph( <ім‘я драйвера>, <режим>, <шлях до драйвера>);

Для першого параметра в модулі Graph визначаються такі константи:

Direct = 0;

CGA = 1;

EGA = 3;

IBM8514= 6;

VGA = 9.

При цьому можна вживати або ім‘я константи, або відповідне число. В першому випадку, коли тип адаптера невідомий, або програма використовується на різних комп‘ютерах, на місці першого параметра задають Direct.

Параметр <Режим> вибирається з таблиці, наприклад VGAHI або число 2.

На місці третього параметра треба вказати шлях до каталогу, де зберігається відповідний драйвер підтримки вибраного режиму.

Приклад:

InitGraph(VGA, 2, ‘D:PASBGI’); Якщо ініціалізація пройде успішно, можна планувати зображення на екрані з розрахунку 640 х 480 пікселів.

InitGraph(Detect, Regim, ‘’); Після тестування буде визначено тип адаптеру і вибрано режим, який задекларовано найбільшою цифрою. Так, якщо буде виявлено адаптер EGA, то для нього вибрано режим EGAH=1, тобто 640 х 350 пікселів. Тут на місці третього параметра вказано пустий рядок, який означає, що відповідний драйвер повинен розміщуватися в поточному каталозі.

В розгляненому прикладі на місці третього параметра вказано пустий рядок, це значить, що відповідний драйвер повинен розміщуватися у каталозі разом з компілятором Turbo Pascal, інакше виникне помилка. Драйвери зберігаються у файлах з розширенням .bgi (cga.bgi, egavga.bgi та інші).

Рекомердується завжди перевіряти результат роботи процедури InitGraph, для чого використовується функція GraphResult. Якщо вона повертає значення 0, значить ініціалазація пройшла успішно, інакше виявлено помилку.

Інша функція GraphErrorMsg повертає код помилки.

Приклад:

Типова ініціалізація:

Var Driver, Reg, Error: Integer;

Begin

Driver:=Detect;

InitGraph(Driver, Reg, ‘’);

Error:=GraphResult;

If Error<.0 then begin

Writeln(GraphErrorMsg(Error));

Halt;

end

else … { продовжувати працювати в графічному режимі.}

End.

Якщо, наприклад, з’явився код помилки, рівний числу 8, значить не знайдено графічного драйверу.

Після завершення роботи в графічному режимі, його закривають процедурою CloseGraph.