Основы программирования на C++, PASCAL
3.7. Управление символьным выводом на экран
Использование для вывода на экран только процедур 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.
Вот пример программы, которая очищает экран и выставляет в центре экрана символ *: