16.3. Модуль Crt
Модуль Crt содержит константы, переменные и подпрограммы, предназначенные для работы с консолью. В отличие от стандартного ввода-вывода, когда он осуществляется через операционную систему, подпрограммы модуля Crt работают с BIOS, и даже непосредственно с видеопамятью.
При работе с экраном через модуль Crt весь экран разбивается на отдельные строки, а каждая строка - на отдельные позиции, в каждую из которых можно поместить один символ (в том числе и пробел). Таким образом, весь экран разбивается на отдельные неделимые прямоугольные элементы. Для каждого элемента можно задать цвет фона (задний план) и цвет символа (передний план). Кроме того, в случае необходимости символ можно сделать мерцающим. Вся эта информация (атрибуты символа) размещается в одном байте информации так, как показано на рис. 3.
|
Рис. 3. Атрибуты элемента экрана |
На этом рисунке буквой М обозначен бит мерцания (символ мерцает, если в этом бите установлена 1), буквами Ф - биты, в которые записывается код цвета фона (биты 4 - 6) и буквами С - биты, в которые помещается код цвета символа (биты 0-3).
Модуль Crt позволяет работать не только со всем экраном, но и выделять в нем прямоугольные окна. Любое окно задается своим левым верхним углом и правым нижним углом. Эти углы, так же как и положение любого объекта на экране, задаются двумя координатами: X и Y. В качестве координаты X выступает номер позиции в строке (нумерация начинается с 1 и идет слева направо), а в качестве координаты Y - номер строки (нумерация начинается с 1 и идет сверху вниз). При работе в окне координаты отсчитываются от левого верхнего угла окна. При запуске программы выделенное окно совпадает по размеру со всем экраном. Если режим работы адаптера - 25 строк по 80 позиций, то координаты такого окна - (1,1) и (80,25).
Список констант модуля приведен в табл. 13.
Таблица 13. Константы модуля Crt
Имя |
Значение |
Назначение |
Коды режимов для процедуры TextMode |
BW40
BW80
СО40
СО80
Font8x8
Mono
С40
С80 |
0
2
1
3
256
7
СО40
СО80 |
40x25 ч/б для цветного адаптера
80x25 ч/б для цветного адаптера
40x25 цветной для цветного адаптера
80x25 цветной для цветного адаптера
EGA/VGA 43 и 50 строк
80x25 для монохромного адаптера
Для совместимости с версией 3.0
Для совместимости с версией 3.0 |
Коды цветов |
Black
Blue
Green
Cyan
Red
Magenta
Brown
LightGray
DarkGray
LightBlue
LightGreen
LightCyan
LightRed
LightMagenta
Yellow
White
Blink |
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
128 |
Черный
Синий
Зеленый
Голубой
Красный
Фиолетовый
Коричневый
Светло-серый
Темно-серый
Светло-синий
Светло-зеленый
Светло-голубой
Розовый
Светло-фиолетовый
Желтый
Белый
Мерцание символа |
Цвета с кодами от 0 до 7 включительно можно использовать как для символов, так и для фона. Остальные цвета и код мерцания можно использовать только для символов.
Перечень переменных модуля приведен в табл. 14.
Таблица 14. Переменные модуля Crt
Имя |
Значение |
Назначение |
CheckBreak
CheckEof
CheckSnow
DirectVideo
LastMode
TextAttr
WindMin
WindMax |
Boolean
Boolean
Boolean
Boolean
Word
Byte
Word
Word |
Разрешение анализа Ctrl+Break
Разрешение помещения признака конца файла
Разрешение подавления "снега"
Разрешение прямой адресации видеопамяти
Текущий текстовый режим
Текущие атрибуты текста
Координаты левого верхнего угла окна
Координаты правого нижнего угла окна |
Переменная CheckBreak управляет реакцией программы на комбинацию клавиш Ctrl+Break. Если эта переменная равна True, комбинация Ctrl+Break вызывает прекращение работы программы, в противном случае никакой реакции на эту комбинацию не происходит. Переменная CheckEof управляет размещением признака конца файла. Если эта переменная равна True, комбинация клавиш Ctrl+Z помещает в файл признак конца файла, в противном случае эта комбинация не оказывает никакого действия. Переменная CheckSnow разрешает (если равна True) или запрещает (в случае False) подавление "снега" на экране для видеоа- даптеров CGA. Переменная DirectVideo позволяет или запрещает непосредственную запись информации процедурами Write и WriteLn в видеопамять (в случае True - прямая запись в видеопамять, в случае False - запись через BIOS). В переменной LastMode помещается значение текущего текстового, режима, установленное процедурой TextMode (см. табл. 13). Переменная TextAttr содержит установленные атрибуты (цвета фона и символов) текста. В переменных WindMin и WindMax находятся координаты левого верхнего и правого нижнего углов окна. В каждой из этих переменных младший байт содержит Х-координату, а старший - Y-координату.
Таблица 15. Процедуры и функции модуля Crt
Имя |
Назначение |
Процедуры задания режимов работы |
TextMode |
Задание текстового режима |
Процедуры управления цветом |
High Video
LowVideo
Norm Video
TextBackground
TextColor |
Задание высокой яркости символов
Задание малой яркости символов
Задание исходной яркости символов
Задание цвета фона
Задание цвета символов |
Процедуры работы с экраном |
ClrEol
ClrScr
DelLine
GotoXY
InsLine
Window |
Удаление символов от курсора до конца строки
Очистка экрана
Удаление строки, в которой находится курсор
Перемещение курсора в заданную позицию
Добавление пустой строки на экране
Задание размеров окна |
Функции работы с экраном |
WhereX
WhereY |
Текущая координата X курсора
Текущая координата Y курсора |
Функции работы с клавиатурой |
KeyPressed
ReadKey |
Проверка нажатия клавиши
Чтение символа с клавиатуры |
Процедуры управления звуком |
Sound
NoSound |
Включение звука
Отключение звука |
Процедуры разнообразного назначения |
Delay
AssignCrt |
Задержка выполнения программы
Связь текстового файла с устройством CRT |
Далее дается в алфавитном порядке краткое описание сначала процедур, а затем функций модуля.
|