2. Модуль GRAPH. Ініціалізація і завершення графічного режиму

Як відмічено на початку лекції, для створення графічних зображень в мові ТР призначений спеціальний стандартний бібліотечний модульGRAPH, який підключається стандартним способом: USES GRAPH;

Модуль GRAPH представляє собою окремий файл GRAPH.TPU і містить набір процедур і функцій.

1)    Процедура ініціалізації графічного режиму:

 

InitGraph (var Driver, Mode : integer; path : string);

 

Змінні Driver i Mode задають драйвер і режим роботи адаптера, path – визначає ім’я файлу драйвера і можливий шлях до файлу.

Перші дві змінні задаються константами таблиці 2, іменем або числовим значенням.

Приклад 1:

Нехай драйвер EGAVGA.BGI знаходиться в каталозі TP\BGI диска С і встановлює режим VGAHI (640*480, 16 кольорів). Фрагмент використання процедури в програмі:

 

Begin

Driver := VGA;

Mode := VGAHI;

InitGraph (Driver, Mode, ‘C:\TP\BGI’);

end.


Якщо тип адаптера не відомий, або якщо програма розрахована на роботу з будь-яким адаптером, використовується звертання до процедури з параметром автоматичного визначення типу драйверу.

Приклад 1а:

Driver := Detect;

InitGraph (Driver, Mode, ‘C:\TP\BGI’);

 

Такий параметр рекомендують використовувати при роботі на різних комп’ютерах з різними відеоадаптерами.

Особливості автовизначення типу драйвера:

а) для адаптера вибирається максимальний режим;

б) на час виконання програми всі драйвери знаходяться у пам’яті, або на диску; для великих програм це може привести до зменшення швидкості роботи програми;

в) ТР автоматично не розпізнає адаптери IBM8514 i ATT400; їх необхідно вказувати в процедурі.

2)    Процедура завершення графічного режиму: CLOSEGRAPH;

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

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


 

3. Структура графічної Паскаль-програми

Приклад 2:

Program GraphicDemo;

Uses Graph;

Var Driver, Mode : integer;

Begin

Driver := Detect;

InitGraph (Driver, Mode, ‘C:\TP\BGI’);

{графічні дії}

…..

CloseGraph ;

End.


4. Помилки ініціалізації графічного режиму та їх обробка

При виконанні програми можуть виникати помилки. Тому в модулі GRAPH реалізований механізм визначення помилок та видачі повідомлень про них на екран за допомогою функції GraphResult i GraphErrorMsg.

Функція GraphResult : integer; повертає 0, якщо остання графічна операція виконалась без помилок, або число від –14..-1, при наявності помилок.

Функція GraphErrorMsg (Code : integer) : string; повертає значення типу STRING в якому відповідно коду помилки надається текстову повідомлення. CODE – код помилки, який повертається функцією GraphResult.

Приклад 3:

 

Var

Driver, Mode, Error : string;

Begin

Driver := Detect;

InitGraph (Driver, Mode, ‘’);

Error := GraphResult;

If Error <> 0 then

WriteLn (GraphErrorMsg (Error));

……………. {повідомлення помилки}

CloseGraph;

End.

 


5. Група процедур та функцій управління режимами роботи графічного адаптера

 

1)     процедура DetectGraph виконується для тестування графічного адаптера:

 

DetectGraph (var Driver, Mode : integer);

Ця процедура може бути викликана до ініціалізації графічного режиму. Параметри:

Driver – повертає тип драйвера;

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

Ці значення і рекомендується підставляти як фактичні параметри процедури InitGraph.

2)                 група процедур та функцій управління режимами роботи графічного адаптера:

а) функція GetGraphMode : integer повертає код установленого режиму роботи графічного адаптера.

б) функція GetMaxMod : integer; повертає максимальний номер коду режиму графічного адаптеру;

в) функція GetModName (ModNum : integer) : string; повертає значення типу STRING, яке містить ім’я режиму роботи за його номером;

г) функція GetDriveName : string; повертає ім’я поточного графічного драйвера;

д) процедура GetModeRange (Driver : integer; var LoMode, HyMode : integer); повертає діапазон можливих режимів роботи заданого графічного драйвера:

Driver – тип адаптера;

LoMode – мінімальне значення коду режиму адаптера;

HiMode - мінімальне значення коду режиму адаптера.

!Особливість!:

-          якщо значення Drive задано невірно, то змінні отримують значення –1;

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

3)     процедур установки текстового та графічного режимів:

а) RestorCRTMode; повертає до текстового режиму.

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

б) процедура SetGraphMode (Mode : integer); установлює графічний режим за вказаним кодом – Mode.

!Осбливість!: для повернення до попереднього графічного режиму на місце параметра мінімальне значення коду режиму адаптера Mode можна вставити функцію GetGraphMode.

Розглянемо приклади використання процедур роботи з відеорежимами.

Приклад 4:

Перехід з графічного режиму до текстового і знову до графічного.

Uses Graph;

Var Driver, Mode, Error : integer;

Begin

Driver := Detect;

InitGraph (Driver, Mode, ‘’);

Error GraphResult;

If Error <> 0 then

WriteLn (GraphErrarMsg (Error))

Else

Begin

WriteLn (‘Це графічний режим’);

ReadLn;

ResultCRTMode;

WriteLn (‘Це текстовий режим’);

`ReadLn;

SetGraphMode (GetGraphMode);

WriteLn (‘Знову графічний режим’);

ReadLn;

CloseGraph;

End;

End.

 

Приклад 5:

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

 

Uses GRAPH;

Var

a, b : integer;

begin

a := Detect;

InitGraph (a, b, ‘’);

WriteLn (GetDriveName);

For a := 0 to GetMaxMode do

WriteLn (GetModeName (a) : 10);

ReadLn;

CloseGraph;

End;

Приклад 6:

Вивести на екран назви всіх адаптерів і діапазон можливих номерів режимів їх роботи.

Uses Graph;

Var

D, L, H : integer;

Const

N : array [1..11] of string [8] =

(‘CGA’, ‘MCGA’, ‘EGA’;

‘EGA64’, ‘EGAMONO’, ‘IBM8514’;

‘HercMONO’, ‘ ATT400’, ‘VGA’;

‘PC3270’, ‘Помилка’);

begin

writeLn (‘ адаптер Мин. Макс.’);

for D :=1 to 11 do

begin

GetModeRange (D, L, H);

WriteLn (N [D], L : 7, H : 10);

End;

End.

Таким чином:

а) керування графічним режимом забезпечується модуль GRAPH, який підключається стандартним способом: USES GRAPH;

б) для ініціалізації графічного режиму використовують процедура InitGraph;

в) завершує графічний режим процедура CloseGraph;

г) структура графічної Паскаль-програми практично не відрізняється від стандартної структури;

д) модуль GRAPH містить широкий набір процедур та функцій роботи з відеорежимами.


Информация о работе «Відображення на екрані дисплея графічної інформації»
Раздел: Информатика, программирование
Количество знаков с пробелами: 18718
Количество таблиц: 4
Количество изображений: 1

Похожие работы

Скачать
156341
11
15

... в даній роботі, була опробована й досліджена в реальних умовах моєї професійної діяльності й показала свою працездатність і ефективність. 3. Розробка системи керування та актуалізації інформації web-сайту національного оператора Енергоринка   3.1 Вибір інструментарію для створення web-сайту та системи керування   Перед тим, як безпосередньо перейти до створення Web-сайту Національного ...

Скачать
213419
24
23

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

Скачать
259712
25
12

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

Скачать
52580
22
9

...                 Студент (підпис) Керівник роботи (підпис) ДОДАТОК В Тематика курсових робіт по предмету “Системи оброблення економічної інформації” для студента III курсу спеціальності “Економічна кібернетика”   ...

0 комментариев


Наверх