- •Введение
- •Управление экраном в текстовом режиме
- •Установка текстового режима
- •Установка цвета и фона
- •Управление курсором.
- •Управление строками.
- •Управление звуком.
- •Текстовые окна.
- •Использование клавиатуры.
- •Организация меню пользователя. Элементы псевдографики.
- •Виды меню
- •Использование буфера экрана.
- •Управление экраном в графическом режиме.
- •Стандартные подпрограммы для работы в графическом режиме
- •Установка графического режима.
- •InitGraph (var Driver,Mode:integer; DriverPath:string) -
- •Координаты, графические окна.
- •Выбор цвета, стиля заполнения.
- •Геометрия
- •Точки и линии.
- •Многоугольники
- •Дуги, окружности, эллипсы
- •Вывод текста
- •Сохранение и выдача изображений
- •Дополнительные стандартные подпрограммы для работы в графическом режиме. Анализ графического режима
- •Установки графических окон, страницы
- •Выбор палитры, заполнения
- •Геометрия
- •Установки вывода текста.
- •Организация библиотек пользователя
- •Interface
- •Implementation
- •Interface
- •Implementation
- •Приложение 1. Кодировочная таблица пэвм.
- •Приложение 2. Константы графического режима.
Установка текстового режима
Для установки определенного текстового режима работы с экраном используется процедура :
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-м и т.д.). Каким цветом
отображаются символы, номер цвета которых больше максимально-
го ? При завершении программы восстановить первоначальную цвет-
ность.