ПРОЦEДУРИ ТА ФУНКЦ ІЇ МОДУЛЯ CRT
![]() |
Зміст | Задачі | ![]() |
Спочатку розглянемо процедури та функції модуля Crt для роботи з екраном дисплея в текстовому режимі. Текстові режими служать для відображення символів кодової таблиці комп'ютера та характеризується кількістю символів в рядку і кількістю рядків на екрані. Мінімальною одиницею інформації в текстовому режимі служить символ. Кожен символ будується з деякого числа точок. Текстові режими підтримуються всіма типами адаптерів дисплеїв. Як правило, використовуються текстові рeжими в яких 80 символів в 25 рядках. Текстовий режим встановлюється процедурою TextMode(Mode); де Mode- це режим(0, 2, 3,.... ). Якщо дисплей кольоровий , то можна встановити колір символів і фону за допомогою процедур TeхtColor(Color:byte); TextBackGround(color:byte);
Значення параметра Color можуть задаватися як константами модуля Crt, так і їх числовими значеннями, повний список яких наведено у таблиці 1.
Темні кольори
|
Світлі кольори
|
0 (Black)-чорний | 7 (LightGray)-світло-синій |
1 (Blue)-синій | 9.(LightBlue)-світло-синій |
2 (Green)-зелений | 10 (LightGreen)-світло-зелений |
3 (Cyan)-голубий | 11 (LightCyan)-світло-голубий |
4 (Red)-червоний | 12 (LightRed)-світло-червоний |
5 (Magenta)-фіолетовий | 13 (LightMagenta) - світло - фіолетовий |
6 (Broun)-коричневий | 14 (Yellow)-світло-коричневий |
8 (DarkGray)-темно-сірий | 15 (While)-білий |
Приклад.
TextColor(Yellow);
TextBackGround(Red)
Write('Жовті Символи на червоному фоні');
Якщо встановлено однаковий колір для символів і фону, то текст , що виводиться, буде невидимим.
Модуль Crt дозволяє встановлювати якість відображення символів на екрані. Для цього використовуються процедури LowVideo, NormVideo, HighVideo без параметрів.
Процедура LowVideo встановлює режим мінімальної яскравості; NormVideo - режим нормальної яскравості; HighVideo – режим максимальної яскравості.
При ініціалізації модуля Crt встановлюється режим нормальної яскравості, колір символів - білий, колір фону - чорний.
Екран дисплея очищається процедурою ClrScr. Дана процедура повністю заповнює пробілами екран або активне вікно і встановлює курсор в лівий верхній кут екрану(вікна). Щоб зафарбувати екран (вікно) певним кольором потрібно встановити колір фону і очистити екран. Наприклад, використання процедур TextBackGround(Cyan);ClrScr; - дозволяє зафарбувати екран голубим кольором.
Для формування доброго, з точки зору сприйняття, зображення на екрані користувач повинен мати засоби переміщення курсору в будь-яку позицію екрана. Для цього в Turbo Pascal'i використовується процедура GotoXY(x, y:byte);
Функції:
WhereX:byte;
WhereY:byte;
Процедура GotoXY встановлює курсор в позицію екрану, задану координатами X(стовпчик) і Y(стрічка). Функції WhereX і WhereY дозволяють визначити положення курсору (стовпчик і стрічку, в якій він знаходиться).
Модуль Crt дає можливість в будь-який момент роботи програми використовувати для виводу на весь екран, а деяку його частину, яка називається вікном. Величина вікна та його розміщення визначається користувачем і не може перевищувати розмірів екрану. Для організації вікон в Turbo Pascal'i використовується процедура Window (x1, x1, x2, y2);
де x1, y1 - координати лівого верхнього, a x2, y2 - правого нижнього кутка вікна.
На екрані може знаходиться декілька вікон, але в кожен момент часу активним може бути тільки одне вікно. Процедури і функції WherX, WhereY, GotoXU, GlrScr, Write, Writeln, Read, Readln, виконують відповідні призначенню дії відносно активного віку. Тепер розглянемо засоби модуля Crt для управління клавіатурою і звуком. Управління клавіатурою здійснюється двома функціями: ReadKey i KeyPressed. Розробка якісних інтерфейсів для роботи з екраном неможлива без використання цих функцій.
Функція ReadKey зчитує символ з клавіатури і повертає значення типу char. Читання символу не супроводжується його відображенням на екрані, що широко використовується при розробці екранних інтерфейсів типу "меню", програм парольного захисту та інших прикладних програм.
Стандартна клавіатура має три типи клавіш: символьні (букви, цифри); керуючі (функціональні клавіші, клавіші переміщення курсору, вставка, та ін.); зсуву (Ctrl, Alt, NumLock, CapsLock та ін. ). Символьні клавіші при натисканні повертають одне значення, яке прийнято називати простим кодом. Керуючі клавіші при натисканні повертають два значення, причому перше із них завжди рівне 0 (ознака клавіші керування), а друге-деякій фіксованій величині, що відповідає натиснутій клавіші. Коди спеціальних клавіш прийнято називати розширеними. Клавіші зсуву повертають коди, які не розпізнаються засобами Turbo Pascal, і тому їх використання представляє певну складність.
Таблиця простих кодів натиснутих клавіш входять у кодову таблицю комп’ютера (таблицю ASCLL-кодів). Наведемо таблицю розширених кодів.
Таблиця 2. Розширені коди клавіатури
Код
|
Натиснута клавіша
|
16-25
|
Alt+Q / W / E / R / T / Y / U / I / O / P |
30-38
|
Alt+A/ S / D / F / G / H / J / K / L |
44-50
|
Alt+Z/ X / C / V / B / N / M |
59-68
|
F1-F10 |
71
|
Home(Початкова позиція) |
72
|
(Стрілка вверх) |
73
|
PgUp (Сторінка вверх) |
74
|
(Стрілка вліво) |
77
|
(Сторінка вправо) |
79
|
END (Кінець) |
80
|
(Сторінка вниз) |
81
|
PgDh (Сторінка вниз) |
82
|
Ins (Вставка) |
82
|
Del (Знищення) |
120-131
|
Alt+1/2/3/4/5/6/7/8/9/0/-/= |
Функція KeyPressed повертає значення True, якщо була натиснута будь-яка клавіша (крім клавіші зсуву) і False-якщо ні. З допомогою цієї функції можна затримати виконання програми. Наприклад, оператори
WriteIn ('Для продовження натисніть будь-яку клавішу ');
repeat until KeyPressed;
зупинять виконання програми.
Поряд з процедурами і функціями організації роботи з екраном та клавіатурою модуль Crt включає засоби управління звуком. В персональних комп’ютерах є можливість генерувати з допомогою вмонтованого динаміка звукові сигнали частотою 37-32767Гц. Відтворюються тільки чисті томи без будь-яких спотворень. Для управління частотою звуку і його тривалістю в Turbo Paskali використовуються стандартні процедури Sound, NoSound i Delay.
Sound(i)-активізує звукові засоби ПЕОМ. Цілочисельне значення і вказує частоту звучання в герцах. Звук вказаної частоти буде генеруватися до тих пір, поки його не відмінять процедурою NoSound. Щоб вказати час, протягом якого буде продовжуватися звучання використовують процедури Delay(N), де N – ціле число мілісекунд.
Приклад.
Sound(600);
Deiay(2500);
NoSound;
В даному прикладі звуковий сигнал частотою 600 Гц буде звучати протягом 2, 5 секунди (2500мілісекунд).З допомогою процедури Sound, NoSound, Delay і операторів циклу можна створювати самі різноманітні звукові ефекти: звучання сирени, метронома, будильника, спів птаха, фрагменти музичних творів і т.п.
Модуль Рrіnter. Друк текстів програм та їх результатів.
Для виводу інформації на друк модуль Рrіtetеr використовує зміну Lst стандартного типу text, системно зв'язану з логічним пристроєм РRN (принтером, якщо він входить у конфігурацію). Використання цієї змінної в стандартних процедурах Write і Writeln приводить до виводу інформації на друк. Як і при виводі на екран може використовуватись формат.
Приклад.
Writeln(Lst,'Платіжне доручення');
Write(Lst,'S=',S:6:2);
Друкуючий пристрій (принтер) дозволяє виводити на друк тексти документів в самих різноманітних формах. Наприклад, в документах, що друкуються, можуть виділятися жирним шрифтом чи підкреслюватися заголовки розділів, чорнові варіанти друкуються дрібним шрифтом, а чистові - високоякісним, близьким по якості до шрифту друкарської машинки.
Команди принтеру задаються за допомогою управляючих символів. При друкуванні ці символи не будуть з'являтись в документах. Наведемо декілька основних команд принтера Epson FX-1000 в наступному прикладі.
Приклад.
Writeln(Lst,#14,'Розширений
шрифт ');
Writeln(Lst,#15,'Стислий шрифт ');
Повний список команд управління принтером і відомості про їх використання можна знайти в документації до даного принтера.
Наведені вище команди дозволяють ефективно організувати друк результатів програм. Результати програм можна друкувати іншим способом. Натискання клавіші PrtScr приводить до друку тексту з екрану дисплею. Але цей спосіб не дозволяє використовувати різні шрифти. Крім того, друкується вся інформація , що знаходиться на екрані, тоді як, можливо потрібна лише частина.
Проте даний спосіб ефективний при друкуванні результатів роботи графічних програм. Щоб друкувати графіки, діаграми, картинки та ін. графічну інформацію потрібно перед запуском графічної програми запустити системну утиліту graphics.com.
Програми, написані на Turbo Pascal'i, знаходяться в текстових файлах.
А тексти можна друкувати засобами операційної системи MS-DOS або спеціальним
програмами. Наприклад, щоб надрукувати текст програми, що знаходиться в файлі
progl.pas на диску C :в каталозі TP потрібно з командної
стрічки MS-DOS ввести команду copy c:\tp\prog.pas PRN
Вважається, що дана програма знаходиться в активному каталозі під іменем print.pas.
ЗАУВАЖЕННЯ. Дана програма може друкувати не тільки свій текст, але тексти інших програм. Для цього в операторі процедури Assign потрібно вказати ім'я файла, що виводиться на друк.
![]() |
Зміст | Задачі | ![]() |