Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Informatika_Lektsii_4_5.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
422.91 Кб
Скачать

4.4. Использование библиотеки crt для создания текстового пользовательского интерфейса

В текстовом режиме весь экран разбит на 80х25 знакомест (25 строк по горизонтали, 80 столбцов по вертикали).

Рассмотрим выполнение отдельных функций по работе с текстовым экраном при помощи подпрограмм из библиотеки crt.

Функции работы с клавиатурой (не содержат входных параметров).

KeyPressed. Возвращает значение типа Boolean, указывающее состояние буфера клавиатуры: False означает, что буфер пуст, a True - что в буфере есть хотя бы один символ, еще не прочитанный программой.

ReadKey. Возвращает значение типа Char, которое равно содержимому буфера клавиатуры. Если он пуст, функция ожидает нажатия на любую клавишу. В отличие от read и readln ввод не сопровождается эхо-повтором вводимых символов на экране.

Функция ReadKey часто используется в конце программы для того, чтобы сохранить на мониторе содержание пользовательского экрана до тех пор, пока пользователь не оценит результаты расчета и не нажмет какую-нибудь клавишу для возврата в основное оно программы.

Процедуры задания цвета выводимых символов и фона.

1.TextColor(Color: Byte). Определяет цвет выводимых символов.

2. TextBackground(Color: Byte). Определяет цвет фона.

Единственным параметром процедур является цвет, имеющий тип Byte. Его можно задать по наименованию либо с помощью нужного числового кода, соответствие их дано в Таблице 4.1.

Примеры:

TextColor(7); { Светло-серый}

TextColor(LightGray); { Светло-серый}  

TextColor(White+Blink); {Белые мигающие символы} 

Таблица 4.1. Коды цветов

Код

Цвет

Код

Цвет

Код

Цвет

0

Black (Черный)

6

Brown (Коричневый)

12

LightRed (Розовый)

1

Blue (Темно-синий)

7

LightGray (Светло-серый)

13

LightMagenta (Малиновый)

2

Green (Темно-зеленый)

8

DarkGray (Темно-серый)

14

Yellow (Желтый)

3

Cyan (Бирюзовый)

9

LightBlue (Синий)

15

White (Белый)

4

Red (Красный)

10

LightGreen (Светло-зеленый)

128

Blink =128 (Мерцание символа)

5

Magenta (Фиолетовый)

11

LightCyan (Светло-бирюзовый)

Все цветовые настройки предварительно заносятся в специальную переменную TextAttr модуля CRT и используются для в выводе только при обращении к процедурам Write или WriteLn.

Процедуры очистки экрана, окна или отдельных строк (не содержат входных параметров).

1. ClrScr - очистка всего экрана или окна, после обращения к ней они заполняются установленным цветом фона и курсор устанавливается в левом верхнем углу.

2. ClrEol - очистка текущей строки - от текущей позиции курсора до правого края экрана (окна).

3. DelLine - удаление строки, в которой находится курсор.

4. InsLine - очистка текущей строки целиком, курсор остается на прежней позиции.

Пример использования ClrScr:

TextBackground(red); {Установка красного цвета фона}

ClrScr;{Заполнение экрана красным цветом}

Процедура Window задания окна (активной области ввода/вывода) - прямоугольной области экрана, в которую осуществляется весь вывод. Сразу после вызова процедуры курсор помещается в левый верхний угол окна, а само окно очищается (заполняется цветом фона). По мере вывода курсор, как обычно, смещается вправо и при достижении правой границы окна переходит на новую строку, а если он к этому моменту находился на последней строке, содержимое окна сдвигается вверх на одну строку, т.е. осуществляется «прокрутка» окна. Обращение имеет вид:

Window(XI,Y1,X2,Y2: Byte);где (XI,Y1) - координаты левого верхнего (X2,Y2) - правого нижнего углов окна.

В координатах экрана левый верхний угол экрана имеет координаты (1,1), горизонтальная координата увеличивается слева направо, а вертикальная - сверху вниз.

Обращение к процедуре Window игнорируется, если какая-либо из координат выходит за границы экрана или если нарушается одно из условий: Х2>Х1 и Y2>Y1. Каждое новое обращение к Window отменяет предыдущее определение окна.

Пример задания окна с границами (XI, Y1) =(20, 5) и (X2, Y2) = (90,35):

Window(20,5,90,35);

Границы текущего окна запоминаются в двух глобальных переменных модуля CRT: переменная WindMin типа Word хранит X1 и Y1 (XI - в младшем байте), а переменная того же типа WindMax - Х2 и Y2(X2 - в младшем байте). В отличие от обращения к Window координаты, хранящиеся в переменных WindMin и WindMax, соответствуют началу отсчета (0,0).

Процедуры и функции работы с курсором. Процедура GotoXY переводит курсор в нужное место экрана или текущего окна, которое задается координатами X,Y. Обращение к GotoXY игнорируется, если задаваемые координаты X,Y выходят за границы экрана (окна).

Пример. Перевод курсора в точку с координатами X=2, Y=6:

GotoXY(2,6);

Функции WhereX и WhereY возвращают, соответственно, горизонтальную и вертикальную координаты курсора (значения типа Byte).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]