| END.
Рис. 15.13
- 337 -
Интересных эффектов можно достичь, применяя сочетания этих команд. На рис. 15.13 приводится простейшая программа, реализующая забавный эффект «подвижного текста», который может быть использован при написании игр или заставок к программам.
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 -
15.4.5. Подача звуковых сигналов