15.4.4. Настройка цвета
15.4.4.1. Процедуры TextColor(C : Byte) и TextBackGround(C: Byte). Действие этих процедур сводится к записи в системную переменную TextAttr модуля CRT определенных значений. Процедура TextColor устанавливает цвет символов, a TextBackround — цвет фона. Специально для этих процедур определены константы, соответствующие различным цветам (табл. 15.7).
Таблица 15.7
Константа Число Цвет
Процедуры
Black = 0 Черный
TextColor, TextBackround
Blue = 1 Синий
TextColor, TextBackround
Green = 2 Зеленый
TextColor, TextBackround
Cyan = 3 Голубой
TextColor, TextBackround
Red = 4 Красный
TextColor, TextBackround
Magenta = 5 Фиолетовый
TextColor, TextBackround
Brown = 6 Коричневый
TextColor, TextBackround
LightGray = 7 Ярко-серый
TextColor, TextBackround
DarkGray = 8 Темно-серый
TextColor
LightBlue = 9 Ярко-синий
TextColor
LightGreen = 10 Ярко-зеленый
TextColor
LightCyan = 11 Ярко-голубой
TextColor
LightRed = 12 Ярко-красный
TextColor
LightMagenta = 13 Ярко-фиолетовый
TextColor
Yellow = 14 Желтый
TextColor
White = 15 Белый
TextColor
Blink = 128 Мерцание
TextColor (как слагаемое)
Удобство использования процедур в том, что не надо пересчитывать значения, как это делалось при непосредственном изменении TextAttr. Достаточно указать нужный цвет, подставив соответствующую константу, например:
TextColor( LightRed + Blink );
TextBackround( Green );
- 338 -
В результате будет установлен мигающий ярко-красный цвет символов на зеленом фоне.
Заметьте, что для фона разрешенными являются только восемь значений «неярких цветов».
15.4.4.2. Процедуры установки яркости HighVideo и LowVideo. Эти процедуры не имеют параметров, но тоже занимаются установкой значения системной переменной TextAttr. Более конкретно, они устанавливают бит яркости в значения «да» (1) или «нет» (0), превращая обычные цвета (Black...LightGray) в «яркие» (DarkGray...White). Хотя можно заметить некоторые несоответствия. Так, ярко-серый (LightGray) стал ярко-белым (White), коричневый (Brown) стал желтым (Yellow).
Процедуры HighVideo и LowVideo хорошо работают при оформлении диалога и каких-либо других задач, связанных с выводом текстов на экран (рис. 15.14),
| USES CRT; { Пример применения LowVideo и HighVideo}
| BEGIN
| TextColor( LightGray ); { неяркий белый цвет }
| TextBackGround( Black ); { черный цвет фона }
| ClrScr;
| Write ( 'Легко использовать ' );
| HighVideo; { включение яркости }
| Write ( 'яркость ' );
| LowVideo: { выбор низкой яркости }
| Write ( 'для выделения слов.' );
| ReadLn; { пауза до нажатия ввода}
| ClrScr
| END.
Рис. 15.14
15.4.4.3. Процедура NormVideo. Эта процедура, хотя и похожа по виду на процедуры HighVideo и LowVideo, имеет с ними мало общего. После ее выполнения восстанавливаются тот цветовой атрибут (цвет фона, символов и мерцание), который был на момент начала работы программы.
Мы уже писали о «хорошем тоне» написания программ — когда рекомендовали ставить процедуру TextMode для восстановления исходного текстового режима. Советуем добавить в конец программы вызов NormVideo. Это дает гарантию, что программа «не собьет» нормальные цвета после окончания.
- 339 -