Использование для вывода на экран только процедур Write и WriteLn дает программисту очень слабые возможности для управления расположением на экране выводимого текста. Печать текста может производиться только сверху вниз, слева направо. Невозможны возврат к предыдущим строкам, стирание напечатанного текста, изменение цвета символов и т.д.
Дополнительные возможности управления выводом на экран дают процедуры и функции модуля CRT.
Для установления связи пользовательской программы с модулем перед разделами описаний должна быть поставлена строка
Uses CRT
Для работы с модулем CRT необходимо познакомиться со следующими понятиями: режимы экрана, координаты на экране, текстовое окно, цвет фона и цвет символа.
Режимы экрана. Вывод на экран может происходить в текстовом или графическом виде (на графических дисплеях). Мы здесь будем говорить только о текстовом выводе.
Дисплеи бывают монохроматические (черно-белые) и цветные. Монохроматические дисплеи могут работать только в черно-белом режиме; цветные — как в черно-белом, так и в цветном. Кроме того, текстовые режимы различаются по количеству символьных строк и столбцов, умещающихся на экране.
В модуле CRT каждый режим имеет определенный номер, за которым закреплено символическое имя (описанная константа). Для установки режима экрана используется процедура
TextMode(<номер режима>)
При обращении к процедуре номер режима может задаваться как числом, так и именем соответствующей константы. Например, два оператора
TextMode(1);
TextMode(CO40);
эквивалентны.
Как правило, исходный режим экрана, устанавливаемый по умолчанию, — СO80 (на цветных дисплеях).
Координаты позиции. Каждая символьная позиция на текстовом экране определена двумя координатами (X, Y). Координата Х — позиция в строке. Для крайней левой позиции в строке Х = 1.. Координата Y — номер строки, в которой находится символ. Строки нумеруются сверху вниз.
Например, в режиме 80 х 25 символ в верхнем левом углу имеет координаты (1; 1); символ в нижнем правом углу — (80; 25); символ в середине экрана — (40; 13).
Для установления курсора на экране в позицию с координатами (X, Y) в модуле CRT существует процедура:
GoToXY(X,Y)
Здесь координаты курсора задаются выражениями типа Byte.
Вот пример программы, которая очищает экран и выставляет в центре экрана символ *:
Uses CRT;
Begin
CIrScr;
GoToXY(40,13);
Write('*')
End.
Используемая здесь процедура ClrScr производит очистку экрана.
Текстовое окно. Прямоугольное пространство на экране, в которое производится вывод символов, называется текстовым окном. Положение окна определяется координатами верхнего левого угла и нижнего правого угла прямоугольника. Если окно занимает весь экран, то в режиме 80 х 25 его координаты (1; 1) — (80; 25). Таким является исходное окно. Изменить положение и размер текстового окна можно с помощью процедуры
Window(Xl,Yl,X2,Y2)
Здесь аргументы — величины типа Byte; (X1, Yl) — координаты верхнего левого угла, (Х2, Y2) — координаты правого нижнего угла окна. После определения окна попытки вывода символов за его пределы оказываются безрезультатными. Повторное обращение к процедуре window с новыми параметрами отменяет предыдущее назначение.
Управление цветом.На современных цветных дисплеях типа EGA, VGA, SVGA в текстовом режиме экрана можно использовать 16 цветов.
В модуле CRT объявлены константы, имена которых представляют собой английские названия цветов, а соответствующие им значения — порядковые номера этих цветов.