Команды модуля CRT.

Во многих случаях стандартные для Turbo Pascal возможности ввода/вывода данных с помощью стандартных процедур оказывается недостаточными для разработки удобных в использовании диалоговых программ. В библиотеке (модуле) CRT, предусмотрены несколько подпрограмм, существенно увеличивающих возможности текстового ввода/вывода.

Оператор Модуль Назначение Пример
WINDOW CRT

Процедура. Установить границы текстового окна, относительно левого верхнего угла экрана. Форма записи:

WINDOW(X1,Y1,X2,Y2)
X1, Y1 — координаты левого верхнего угла;
X2, Y2 — координаты правого нижнего угла.

WINDOW(1,1,10,5);
CLRSCR CRT

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

CLRSCR;
CLREOL CRT

Процедура. Стирает все символы до конца строки, начиная с позиции курсора.

CLREOL;
INSLINE CRT

Процедура. Вставить пустую строку, все нижестоящие строки перемещаются на одну позицию вниз.

INSLINE;
DELLINE CRT

Процедура. Стереть строку, на которой находится курсор, все нижестоящие строки перемещаются на одну позицию вверх.

DELLINE;
TEXTCOLOR CRT

Процедура. Установить цвет выводимых символов. Форма записи:

TEXTCOLOR(COLOR)
COLOR — цвет выводимых символов (диапазон 0 — 15).

TEXTCOLOR(1);
TEXTBACKGROUND CRT

Процедура. Установить цвет фона выводимых символов. Форма записи:

TEXTBACKGROUND(COLOR)
COLOR — цвет фона (диапазон 0 — 7).

TEXTBACKGROUND(3);
GOTOXY CRT

Процедура. Установить позицию курсора, относительно левого верхнего угла активного текстового окна. Форма записи:

GOTOXY(X,Y)
X, Y — координаты.
GOTOXY(2,4);
WHEREX CRT

Функция целого типа. Узнать позицию курсора по X.

X:=WHEREX;
WHEREY CRT

Функция целого типа. Узнать позицию курсора по Y.

Y:=WHEREY;
KEYPRESSED CRT

Функция логического типа. Возвращает значение типа BOOLEAN, указывающее состояние буфера клавиатуры: FALSE означает, что буфер пуст, а TRUE — что в буфере есть хотя бы один символ, ещё не прочитанный программой.
Обращение к функции не задерживает исполнение программы.

REPEAT
 WRITE('SLOVO')
UNTIL KEYPRESSED;
READKEY CRT

Функция символьного типа, возвращает значение типа CHAR. Останавливает выполнение программы до нажатия любой клавиши и возвращает её код.

A:=READKEY;
DELAY CRT

Процедура. Установить задержку работы программы на заданный интервал времени. Форма записи:

DELAY(I)
I — выражение типа WORD, определяющее интервал времени.

DELAY(500);
SOUND CRT

Процедура. Выдать звук заданной частоты. Форма записи:

SOUND(I)
I — выражение типа WORD, частота звука в герцах.

SOUND(1500);
NOSOUND CRT

Процедура. Выключить звук.

NOSOUND;

Пример программы.

Program CRT_Demo;
 Uses CRT;
 Var
  I : Integer;
BEGIN
 Window(1,1,80,25);
 TextBackGround(1);
 ClrScr;
 For I:=1 To 10 Do
  Begin
   Window(40-I,12,40+I,14);
   TextBackGround(7);
   ClrScr;
   Delay(1000);
  End;
 TextColor(0);
 GotoXY(7,2);
 Writeln('Модуль CRT');
 Window(1,1,80,25);
 GotoXY(23,24);
 TextColor(15);
 TextBackGround(0);
 Write('Для продолжения нажмите любую клавишу.');
 ReadKey;
END.

Коды цвета.

Black        = 0   (Чёрный)
Blue         = 1   (Тёмно-синий)
Green        = 2   (Тёмно-зелёный)
Cyan         = 3   (Бирюзовый)
Red          = 4   (Красный)
Magenta      = 5   (Фиолетовый)
Brown        = 6   (Коричневый)
LightGray    = 7   (Светло-серый)
DarkGray     = 8   (Тёмно-серый)
LightBlue    = 9   (Синий)
LightGreen   = 10  (Светло-зелёный)
LightCyan    = 11  (Светло-бирюзовый)
LightRed     = 12  (Розовый)
LightMagenta = 13  (Малиновый)
Yellow       = 14  (Жёлтый)
White        = 15  (Белый)
Blink        = 128 (Мерцание символа)
В место кода можно использовать названия цветов, и исходя из этого операторы TextColor(15) и TextColor(White) аналогичны по своему действию.

Границы экрана.

Максимальное количество столбцов — 80, а строк — 25. При превышении координат им присваивается, как правило, значение 1.