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 -