Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Grafika_Turbo-Pascal.doc
Скачиваний:
24
Добавлен:
08.03.2015
Размер:
362.5 Кб
Скачать

Установка текстового режима

Для установки определенного текстового режима работы с экраном используется процедура :

TextMode (Mode :word);

Значение переменной Mode может быть задано именем константы или номером режима.

Используются следующие константы режима:

const

BW40 = 0; { черно-белый режим 40*25 }

C080 = 1; { цветной режим 40*25 }

BW80 = 2; { черно-белый режим 80*25 }

C040 = 3; { цветной режим 80*25 }

Mono = 7; { с монохромным дисплеем }

Font8*8 = 256;{ для адаптеов EGA/VGA 43*50 }

C40 = C040; { для совместимости с версией 3 }

C80 = C080; { для совместимости с версией 3 }

После вызова TextMode текущим окном становится весь экран. Курсор находится в верхнем левом углу экрана, т.е. в точке с координатами (1,1). В модуле CRT определена переменная LastMode типа word, содержащая номер последнего использованного текстового режима.

Пример.

(* использование TextMode с дальнейшим восстановлением первоначального текстового режима *)

Program Video;

Uses CRT;

Var OldMode : word;

Begin

OldMode:= LastMode;

writeln(' текстовый режим по умолчанию');

(* сохраним первоначальный режим *)

TextMode(0); writeln(' текстовый режим 40 на 25');

...

TextMode(2); writeln(' текстовый режим 80 на 25');

...

TextMode(OldMode);

writeln(' восстановлен первоначальный режим ')

End.

AssignCrt(var f:text) - процедура, связывающая текстовый файл f с устройством Crt(дисплей).

AssignCrt работает так же как и Assign, но имя файла не указывается, т.к. оно связывается с Crt. Это позволяет ускорить ввод/вывод по сравнению с использованием стандартного ввода/вывода.

Установка цвета и фона

При работе с цветом используются процедуры :

TextColor(Color:byte);

TextBackground(Color:byte);

TextColor устанавливает цвет выводимых символов.

Color - указывает константу цвета в диапазоне 0-15. Для форми-

рования мерцающего символа к константе цвета добавляется

константа Blink.

Пример : TextColor(Green); (*зеленые символы*)

TextColor(Yellow + Blink); (*желтые символы

с мерцанием*)

TextBackground устанавливает цвет фона, на котором будут выводиться символы. Color указывает константу выбираемого цвета в диапазоне 0-7. Значение Color может задаваться константами или соответствующими числовыми значениями.

По умолчанию для любого текстового режима цвет фона Вlack, цвет символов White.

const

Black (черный) = 0;

Blue (голубой) = 1;

Green (зеленый) = 2;

Cyan (бирюзовый) = 3;

Red (красный) = 4;

Magents (малиновый) = 5;

Brown (коричневый) = 6;

LightGray (светло-серый) = 7;

DarkGray (темно-серый) = 8;

LightBlue (светло-голубой) = 9;

LightGreen (светло-зеленый) = 10;

LightCyan (светло-бирюзовый) = 11;

LightRed (светло-красный) = 12;

LightMagenta (светло-малиновый) = 13;

Yellow (желтый) = 14;

White (белый) = 15;

Процедуры TextColor и TextBackGround связаны с переменной TextAttr модуля Crt типа byte, в которой хранятся значения атрибутов цвета символов и фона. Значение TextAttr устанавливается системой при инициализации модуля CRT. Следует отметить,что при завершении работы программы установки цветности сохраняются, поэтому в конце программы рекомендуется восстанавливать исходные установки, используя возможность сохранения первоначального режима или атрибутов цветности, как приведено в следующем примере.

Пример.

{--------------------------------------------------------}

{ программа выводит на экран прямоугольные области одним }

{ из цветов для фона (0-7), с различными сочетаниями }

{ цвета символов (0-15) }

{--------------------------------------------------------}

Program tablcolor;

uses crt;

var ind1,ind2 :integer;

old:byte;

begin

old:=TextAttr; { первоначальные установки цветности }

clrscr;

writeln('демонстрация цвета символов с учетом фона ':50);

for ind1:=0 to 7 do

begin

window(ind1*10+1,5,ind1*10+10,25);

TextColor(7); { ind1 - цвет фона }

TextBackGround(0); { ind2 - цвет символов

writeln(' фон:',ind1:1); на фоне ind2 }

writeln('-------');

TextBackGround(ind1);

for ind2:=0 to 15 do

begin

Textcolor(ind2);

writeln(' col:',ind2:2);

end

end;

readln;

TextAttr:=old { восстановим первоначальные }

{ установки цветности }

End.

При работе в черно-белых текстовых режимах определяющее значение имеет черный цвет Black (или 0), белый White (или 15), светло-серый LightGray (или 11) и константа Blink. Используя их сочетания и управляя яркостью можно получать зрительные эффекты в черно-белых режимах. Яркость устанавливается процедурами LowVideo, NormVideo, HighVideo и действует до следующего режима. В цветных режимах данные процедуры не используются.

NormVideo - устанавливает режим нормальной яркости свечения символов. Данный режим является стандартным и устанавливается автоматически при инициализации модуля Crt.

LowVideo - устанавливает режим минимальной яркости свечения выводимых на экран символов.

HighVideo - устанавливает режим максимальной яркости свечения символов.

Отметим, что на некоторых дисплеях, например CGA, разница между пониженной и нормальной яркостью незаметна.

Пример.

{ вывод текста различными режимами яркости }

Uses Crt;

Begin

ClrScr;

HigthVideo;

writeln(' режим максимальной яркости ');

LowVideo;

writeln(' режим минимальной яркости ');

NormVideo;

writeln(' режим нормальной яркости ');

End.

Задание.

1. В черно-белом режиме оформите вывод фразы " ВВОД ДАН-

НЫХ " максимальной яркостью.

2. Вывести на экран каждую букву фразы "ЦВЕТНОЙ КАЛЕЙДОС-

КОП" цветом, соответствующим порядковому номеру буквы в тексте

( например символ 'Ц' 1 цветом, 'В' 2-м и т.д.). Каким цветом

отображаются символы, номер цвета которых больше максимально-

го ? При завершении программы восстановить первоначальную цвет-

ность.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]