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

Обробка помилок ініціалізації

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

Функція

GraphResult: INTEGER;

повертає 0, якщо остання графічна операція виконалася без помилок, чи число в діапазоні від -15 до -1, якщо помилка мала місце.

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

Для швидкої видачі простого повідомлення про тип помилки графічної системи використовується функція, яка перетворює результат виклику функції GraphResult в повідомлення, яке можна вивести на екран процедурою Write. Ця функція оголошується так:

GraphErrorMsg (Error: INTEGER): STRING;

Процедури роботи з відеорежимами

Процедура DetectGraph. Для тестування графічного адаптера використовується процедура DetectGraph, яка оголошена в модулі Graph наступним чином:

DetectGraph (VAR GraphDriver, GraphMode: INTEGER);

Ця процедура може бути викликана до ініціалізації графічного режиму. Через параметр GraphDriver повертається номер драйвера з списку значень, а через параметр GraphMode – значення відповідного цьому драйверу режиму. Ці значення і рекомендується представляти в якості фактичних параметрів у процедуру InitGraph. Якщо на комп’ютері не встановлена графічна плата, то функція GraphResult буде повертати значення grNotDetected. Після визначення змінної GraphDriver автоматично стає доступним діапазон відповідних їй графічних режимів.

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

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

GetGraphMode: INTEGER;

а функція

GetMaxMode: WORD;

повертає номер режиму з максимальним розширенням для графічного адаптера; таким чином кожний драйвер підтримує діапазон 0..GetMaxMode. Звичайно цей же результат можна отримати з процедури:

GetModeRange (GraphDriver: INTEGER; VAR LoMode, HiMode: INTEGER);

яка через параметри LoMode і HiMode повертає, відповідно, нижню і верхню границю режимів для драйвера GraphDriver.

Функція

GetDriverName: STRING;

повертає ім'я поточного встановленого драйвера з списку констант.

Переключення між текстовим і графічним режимами

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

SetGraphMode (GraphMode: INTEGER);

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

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

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

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