Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_Паскал.doc
Скачиваний:
2
Добавлен:
21.09.2019
Размер:
1.21 Mб
Скачать

Модуль crt

Модуль CRT - набір засобів для роботи з екраном у текстовому режимі, клавіатурою і для керування звуком. Для того щоб використовувати ці засоби потрібно після заголовка програми записати: uses CRT;.

1. Керування екраном

У текстовому режимі екран представляється розбитим на маленькі прямокутники однакового розміру, у кожнім з який може знаходитися який-небудь символ з набору ASCII. Для символів можна задавати колір самого символу і колір прямокутника, у якому він малюється (колір фону). Рядка екрана нумеруються зверху вниз, а стовпці зліва на право, нумерація і рядків, і стовпців починається з одиниці.

Найбільш поширеним у даний час є текстовий режим 80x25 при 16 можливих кольорах тексту і фону. Багато графічних адаптерів дозволяють використовувати інші режими, наприклад: 40x25, 80x43, 80x50 і т.д.

У керуванні текстовим екраном важливу роль грає курсор. Виведення символів на екран (тобто write і writeln) здійснюється починаючи з позиції курсору, коли всі символи виведені, курсор зупиняється в наступній позиції після останнього символу. Уведення також буде виконуватися починаючи з позиції курсору.

Нижче приведені основні процедури і функції для керування екраном у текстовому режимі.

Назва

Призначення

InsLine

Вставити рядок у те місце де знаходиться курсор, усі рядки нижче курсору ззміщюються вниз на одну позицію. Курсор залишається на тім же місці.

DelLine

Видалити рядок у позиції курсору. Курсор залишається на тім же місці.

GotoXY(x,y: byte)

Перемістити курсор у позицію (x,y); x — номер рядка, y — номер стовпця.

ClrEOL

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

HighVideo

Установлює підвищену яскравість для виведення тексту

LowVideo

Знижена яскравість

NormVideo

Нормальна яскравість

TextColor(color: byte)

Установлює колір для виведення тексту. Значення кольорів — лежить в межах від 0 до 15. Замість цих чисел можна вказувати й існуючі константи (black, white, red, green, blue, magenta, cyan, brown, lightgray і т.п.). При необхідності можна змусити текст мерехтіти додаючи до номера кольору число 128 чи константу Blink.

TextBackGround(color: byte)

Установлює колір для фону.

ClrScr

Очистити екран і помістити курсор у лівий верхній кут, тобто в позицію (1,1) — 1-я рядок, 1-й стовпець. При очищенні екран заповнюється кольором фону (див. TextBackground)

Where: byte

Ця функція повертає номер рядка, у якій знаходиться курсор.

Where: byte

Номер стовпця, у якому знаходиться курсор

2. Робота з клавіатурою

При роботі з клавіатурою комп'ютер поміщає всю інформацію про натискання клавіш у чергу доти, поки ця інформація не буде потрібна програмі (наприклад, для виведення на екран, для руху об'єктів в іграх і т.п.). Для роботи з клавіатурою важливі 2 функції:

  1. KeyPressed: boolean — повертає true, якщо черга клавіатури не порожня (тобто була натиснута деяка клавіша). Найпростіший приклад використання — повторювати деякі дії, поки не натиснута клавіша: repeat ... until KeyPressed;.

  2. ReadKey: char — повертає символ, що відповідає натиснутій клавіші (з черги клавіатури). Якщо користувач натиснув клавішу, для якої мається код ASCII, то в чергу буде покладений один відповідний символ, а якщо це спеціальна клавіша (F1, F2, ... F12, клавіші керування курсором, Ins, Del, Home, End, PgUp, PgDn), те спочатку в чергу буде покладений символ з кодом 0, а потім додатковий символ. Якщо черга клавіатури порожня, то Readkey буде чекати, поки користувач не натисне яку-небудь клавішу.

Для демонстрації роботи ReadKey можна написати таку програму:

uses Crt;

var c: char;

begin

repeat

c:=ReadKey;

writeln(ord(c));

until c=#27 {клавіша Escape};

end.

При натисканні перерахованих вище спеціальних клавіш ця програма буде виводити по два коди відразу.