- •Оглавление
- •Комбинированный урок №16
- •Обеспечение интерфейса с командами операционной системы
- •Типы прерываний и их обслуживание
- •Организация работы с каталогами и файлами
- •Установка даты и времени
- •Управление вычислительным процессом с помощью вызова внешних программ
- •Организация работы в текстовом режиме Установка текстового режима
- •Организация окон и вывод на экран
- •Управление клавиатурой и звуком
- •Форматы меню. Алгоритм построения вертикального меню
- •Контрольные вопросы
Организация работы в текстовом режиме Установка текстового режима
Работу в текстовом режиме, управление клавиатурой, курсором и звуком выполняет в языке Pascal стандартный модуль CRT. Подключение модуля CRT к программе пользователя осуществляется с помощью USES CRT;.
Текстовый режим используется для вывода символов и характеризуется количеством. Количество символов на экране компьютера по горизонтали и вертикали зависит от типа видеоадаптера и параметров текстового режима и варьируется по горизонтали от 40 до 80. Для установки различных текстовых режимов вывода информации используется процедура TextMode(mode:word);, которая задает текстовый режим модуля mode, который может быть указан в виде именной константы или с помощью числового значения. Некоторые значения именных констант режимов представлены в таблице 1.
Таблица 1.
Имя константы |
Значение |
Разрешение экрана |
Цветной режим |
BW40 |
0 |
40x25 |
Черно-белый для цветного адаптера |
Co40,C40 |
1 |
40x25 |
Цветной |
BW80 |
2 |
80x25 |
Черно-белый для цветного адаптера |
Co80,C80 |
3 |
80x25 |
Цветной |
Font8x8 |
256 |
80/40x50 |
Цветной для адаптера VGA |
После установки текстового режима началом отсчета координат является верхний угол экрана с координатами (1,1). Координата Х изменяется по горизонтали слева направо, а Y по вертикали сверху вниз.
Организация окон и вывод на экран
Модуль CRT обеспечивает работу с окнами разного размера. Величина окна и ее расположение на экране определяется с помощью процедуры Window.
Процедура Window(x1,y1,x2,y2:byte); определяет на экране текстовое окно. Координаты x1, y1 соответствуют верхнему левому углу создаваемого окна, а x2, y2 – правому нижнему углу. После определения окна крайней верхней левой позиции в новом окне соответствует координата (1,1). На экране одновременно может присутствовать сразу несколько окон, но в каждый конкретный момент времени активным является только одно окно.
После завершения определения нового окна удобно установить цвет фона, цвет выводимого в окне текста и, если необходимо, очистить от информации все окно или его часть.
Процедура TextBackGround(colоr:byte); устанавливает цвет фона, который может принимать значения от 0 - Black (черный) до 7 - LightGray (светло-серый).
Процедура TextColor(colоr:byte); устанавливает цвет выводимого в окне текста. Значение цвета обычно изменяется в диапазоне от 0 - Black (черный) до 15 – White (белый). Для вывода мерцающего текста заданного цвета, необходимо в процедуре к значению цвета прибавить константу Blink или значение 128, например, TextColor(Red+Blink) или TextColor(Magenta+128).
Процедура ClrScr; очищает активное окно текущим цветом фона и устанавливает курсор в правый верхний угол этого окна.
Процедура ClrEol; очищает строку текущим цветом фона от текущей позиции курсора до конца строки.
Процедура GotoXY(x,y:byte); переводит курсор в позицию с координатами x, y.
Процедура DelLine; удаляет строку из активного окна, на которой располагается курсор, и смещает все нижние строки на одну позицию вверх.
Процедура InsLine; вставляет дополнительную строку от места расположения курсора в активном окне.
Функция WhereX:integer; возвращает значение х текущей позиции курсора.
Функция WhereY:intteger; возвращает значение у текущей позиции курсора.
Процедура LowVideo; устанавливает режим минимальной яркости свечения символов на экране.
Процедура NormVideo; устанавливает режим нормальной яркости свечения символов на экране.
Процедура HighVideo; устанавливает режим максимальной яркости свечения символов на экране.
Ввод информации в текстовом режиме выполняется с помощью процедур Read, Readln, а вывод - Write и Writeln. Если при выводе текста в активном окне достигается его нижняя граница, то информация в окне сдвигается на одну строку вверх. Такой процесс часто называют «прокруткой».
Процедура CrtExit; восстанавливает режим, который был установлен стандартно после загрузки операционной системы. Данную процедуру целесообразно выдавать при завершении работы программы, использующей текстовый режим работы.
Пример 3. Сгенерировать случайным образом и вывести на экран 255 окон разного цвета.
Uses CRT;
Var X,Y,k,j:byte;
BEGIN
Randomize; {Инициализация генератора случайных чисел}
j:=0;
For k:=1 to 255 do
begin
TextBackGround(j);{установка цвета фона}
ClrScr; {очистка окна}
if LightGray=j then j:=0
else inc(j); {изменениe цвета фона от 0 - Black - до 7 - LightGray }
X:=Random(80)+1;
Y:=Random(25)+1;
Window(X,Y,X+random(5),Y+random(5)) {определение окна}
end;
Readln
END.