Робота з екраном у графічних режимах
що це за режими, як у них перемикатися, навіщо користуватися утилітою BinObj, що і як можна виводити на екран і як це зберегти для вдячних нащадків
Фірмою Borland у свій час був розроблений стандарт на реалізацію апаратно-залежних драйверів графічних режимів екрану (набір функцій, формати тощо), що дозволило реалізувати в модулі Graph безліч апаратно-незалежних функцій типу виведення лінії, кола і тому подібних. На жаль, в момент розробки цього модуля чи не було розроблено швидких алгоритмів (типу алгоритмів Брезенхема), чи уніфіковане спілкування з драйверами займає занадто багато часу, чи просто розробники полінувалися, чи ще що, але лінії та кола промальовуються надзвичайно повільно. . Тим не менш, для простих додатків модуль цілком достатній, особливо якщо врахувати, що існує близько десятка векторних шрифтів (на жаль латинських), сумісних з ним. Розглянемо процедури та функції модуля Graph.
Для ініціалізації графічного режиму необхідно використовувати такі процедури (принаймні, другу з них).
Ця процедура автоматично викликається InitGraph і особливої необхідності її виклик практично ніколи не виникає.
BGI-драйвер повинен бути доступний по зазначеному шляху або перебувати в тілі програми та бути зареєстрованим.
Щоб дізнатися який з наявних драйверів був підключений можна використовувати
При виникненні збійних ситуацій для програмної обробки помилок можна використовувати наступні дві функції
Для коректного виходу із графічних режимів використовують
пошкодуємо користувача
Даний спосіб дещо більш гнучкий (він дозволяє завантажувати різнідрайвери, шукати їх на диску, перевантажувати драйвери), але все ж таки не позбавляє необхідності мати на диску додатковий файл з драйвером (а недосвідчені користувачі просто забувають його скопіювати). Тому бажано використовувати менш гнучкий, але надійніший спосіб надання драйвера - включення його у виконуваний код програми, навіщо користуються спочатку утилітою BinObj , та був підключити отриманий .Obj файл директивою компілятора $L . Директива BinObj як третій параметр вимагає ім'я процедури, під яким цей драйвер буде доступний програмі. Після підключення .Obj файлу в тексті програми слід оголосити процедуру з таким самим ім'ям як зовнішню, для чого після імені процедури слід вказати ключове слово External . Наявність тіла такої процедури не потрібна. Після всього цього залишається передати покажчик на зовнішню процедуру функції RegisterBGIDriver як параметр за допомогою @ та ініціалізувати графіку.
Абсолютно аналогічно можна робити і зі шрифтами, використовуючи при цьому