графічним режимами

Перемикання в графічний режим і робота в ньому реалізовані в Турбо Паскалі у вигляді набору процедур, які перебувають в спеціальному модулі graph.tpu. Робота цього модуля заснована на використанні так званого графічного інтерфейсу Борланд (BGI - Borland Graphics Interface), спеціалізованої графічної бібліотеки. Основна перевага цього інтерфейсу полягає в тому, що він простий у вивченні і цілком підходить для програмування нескладних графічних програм.

Модуль Graph Турбо Паскаля містить близько п'ятдесяти різних процедур і функцій, призначених для роботи з графічним екраном. У цьому ж модулі описані деякі вбудовані константи і змінні, які можуть бути використані в графічних програмах. Основну частину модуля складають процедури виведення базових графічних елементів, таких як точки, відрізки прямих ліній, дуги і цілі кола та т.д. Такі елементи називаються графічними примітивами. Інша група процедур призначена для управління графічним режимом.

Модуль Graph повинен явно підключатися до програми за допомогою оператора використання Uses, що записується після заголовка програми:

де value - це будь-який деяке число (див. таблицю нижче), або вбудована константа (вбудовані константи не треба описувати спеціально, так як їх опису містяться в модулях).

Деякі можливі значення value приведені в таблиці:

640х480, 2 кольори, 1 сторінка

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

InitGraph (var gd: Integer; var gm: Integer;

Процедура InitGraph инициализирует графічну систему і переводить апаратуру в графічний режим.

Program Grafics; Program Grafics;

Uses graph; Uses graph;

Var gd, gm: Integer; Var gd, gm: Integer;

gd: = 9; gm: = 1; gd: = vga; gm: = VGALo;

Перемикання в графічний режим (ініціалізація графічного режиму) зазвичай супроводжується обробкою можливих помилок ініціалізації. Ці помилки можуть бути пов'язані з відсутністю графічного драйвера або неправильними значеннями параметрів. При наявності помилки процедура InitGraph виробляє відповідний, відмінний від нуля, результат - код помилки. Цей код можна отримати за допомогою функції GraphResult.

GraphResult Тип результату: Цілий (Integer).

Визначено наступні коди помилок:

- 1 графіка не встановлена ​​(використовуйте процедуру InitGraph);

- 2 графічна апаратура не знайдена;

- 3 драйвер графічного пристрою не знайдено;

- 4 невірний файл драйвера графічного пристрою;

- 5 не вистачає пам'яті для завантаження драйвера;

- 7 вихід за межі пам'яті при зафарбовуванні;

- 8 файл шрифту не знайдений;

- 9 бракує пам'яті для завантаження шрифту;

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

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

driver, mode, error: Integer;

if error<>GrOk then

GraphResult помилки ініціалізації (дивіться умовний оператор) на екран виводиться повідомлення про помилку для заданого коду (дивіться рядок writeln (GraphErrorMsg (Error)). Функція GraphErrorMsg повертає рядок повідомлення про помилку для заданого коду. І остання процедура Halt - стандартна процедура, яка завершує виконання програми і виконує повернення в операційну систему.

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

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

DetectGraph (var драйвер, режим: Integer).

Примітки: процедура повертає значення обраного режиму і драйвера, які можна передати в якості параметрів процедурі InitGraph для завантаження відповідного драйвера (дивіться таблицю вище). Якщо не вказуються інші дії (або параметр графічного драйвера дорівнює Detect (0)), процедура InitGraph викликає процедуру DetectGraph. знаходить і завантажує відповідний драйвер і ініціалізує графічну систему. Єдиною причиною безпосереднього виклику процедури DetectGraph є заміна обраного їй драйвера.

Встановлює для системи графічний режим і очищає екран.

Опис: SetGraphMode (режим: Integer)

Значення режиму являє собою ціле число в діапазоні від 0 до 5 і залежить від поточного драйвера (дивіться таблицю графічних режимів).

Дана процедура повертає поточний графічний режим, встановлений за допомогою процедур InitGraph і SetGraphMode. Значення режиму є ціле число від 0 до 5 (дивіться таблицю графічних режимів).

Скидає встановлені для графічних засобів параметри і встановлює для графічної системи параметри:

- фоновий і основний колір;

- тип лінії і зразок лінії;

- тип заповнювача, зразок заповнювач і колір заповнювача.

Для даного драйвера повертає найменший і найбільший графічний режим.

var LoMode, HiMode: Integer)

Тут LoMode - найменший (Lowest), HiMode - найбільший (Highest) режими даного драйвера. Якщо значення GraphDriver є неприпустимим, то повертається параметр буде дорівнює - 1.

Повертає рядок, що містить ім'я заданого графічного режиму.

Тип результату: строковий (string).

Імена режимів вбудовані в кожен драйвер. Значення, що повертаються можна використовувати для створення меню, виведення режимів екрану і т.д.

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

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

driver, mode, error: Integer;

Схожі статті