Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programuv_good.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
990.21 Кб
Скачать

Ініціалізація і завершення відеорежиму

Процедура ініціалізації InitGraph. Будь-яка програма, призначена для роботи з графікою, обов’язково повинна містити блок викликів процедур ініціалізації графічного режиму і звернення до процедури його завершення. В такому блоці прохолодить ініціалізація графічного режиму, перевіряється правильність ініціалізації і, якщо всі операції пройшли успішно, дозволяється подальша робота програми. Процедура ініціалізації оголошена наступним чином:

InitGraph (VAR GraphDriver: INTEGER; {тип адаптера}

VAR GraphMode: INTEGER; {режим графіки}

VAR DriverPath: STRING); {шлях до драйвера}

Змінні GraphDriver і GraphMode задають драйвер і режим у відповідності з значеннями, приведеними в попередній таблиці.

Наприклад:

GraphDriver: =EGA; GraphMode: =EGAHi;

В якості значень кожного х цих параметрів можна задати як ім'я відповідної зарезервованої константи, так і її значення; обидва параметри можна встановити до виклику процедури InitGraph.

Якщо параметр GraphDriver містить номер конкретного адаптера, то і другий параметр, GraphMode, повинен мати значення режиму, допустимого для цього адаптера. Коли GraphDriver присвоюється значення константи Detect, система переходить в режим автовизначення. Якщо можливе переключення системи в графічний режим, то проходить ініціалізація відповідного BGI-драйвера і вмикається режим з максимальним розширенням для даного типу відеоадаптера. В GraphDriver і GraphMode при цьому процедура поверне автоматично визначені значення цих параметрів чи код помилки.

Таке встановлення параметру GraphDriver рекомендується в тих випадках, коли програма повинна робити на різних комп’ютерах з різними відеоадаптерами. Але цей метод має один суттєвий недолік: оскільки під час виконання програми всі драйвери одночасно повинні знаходитися в пам'яті чи на диску, для великих програм це може привести до зменшення швидкості роботи програми.

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

Необхідно спеціально відмітити той факт, що Turbo Pascal підтримує графічну плату IBM 8514 – графічну плату з високим розширенням, яка дозволяє отримати розширення до 1024х768 точок і палітру, яка містить 256 відтінків з 256 кольорів. Файл драйвера для цієї графічної плати називається IBM8514.BGI.

Turbo Pascal не може правильно розпізнавати графічну плату IBM 8514 в режимі автовизначення (вона буде розпізнаватися даними алгоритмами як плата VGA). Таким чином, щоб використовувати плату IBM 8514, параметру GraphDriver при виклику InitGraph потрібно присвоїти значення IBM8514 (яке визначене в модулі Graph). При роботі з платою IBM 8514 не слід використовувати з InitGraph процедуру DetectGraph чи константу Detect.

Плата AT&T 400 також розпізнається автоматично. Щоб використовувати відповідний драйвер, необхідно відмітити автовизначення і передати процедурі InitGraph попередньо встановленні значення параметрів GraphDriver і GraphMode.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]