Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[21]

Модуль CRT служит для управления экраном в текстовом режиме, а также для управления клавиатурой и звуковыми сигналами. Модуль содержит библиотеку процедур (подпрограмм) и функций, которые выполняются при их вызове. Модуль подключается в начале раздела описания основной программы оператором Uses CRT;

Наименование процедуры

Параметры процедуры

Результат выполнения процедуры

TextMode(N);

-►

N - тип Word N=0 (40x25)-CGA- ч. б. N=1 (40x25) -CGA, N=2 (80x25) -EGA, VGA, N=3 (80x25) цветной N N=N+256 (80x43)-EGA цветной (80x50)-VGA цветной N=7 (80x25)-монохромный; ( 80 колонок х 25 строк );

Задание текстового режима работы монитора.

Экран очищается, курсор устанавливается в позицию 1, 1.

Цвета - исходные: белые символы на черном экране Наибольшие значения координат Хш:= Lo(WindMax)+1; Ym:= Hi(WindMax)+1;

Window(x1, y1, x2, y2);

x1 x2

x1, y1, x2, y2 - тип Byte.

1 <= x1 < x2 <= Xm 1 <= y1 < y2 <= Ym

в системе координат экрана.

Задание окна на экране.

Курсор устанавливается в позицию (1, 1) в системе координат окна.

Превышение координат экрана

игнорируется.

TextBackGround(N);

N - тип Byte

0 <=N<= 7

Назначение цвета фона.

При N>7 N:= N mod 8

Clrscr;

Использование процедуры

после TextBackGround(N);

закрашивает активное окно.

Очистка активного окна, экрана курсор устанавливается в пози-Jmo (1, 1). Закрашивание окна.

TextColor(N);

N - тип Byte

0 <=N<= 15

а также при N:= N + 128 -вывод мерцающих символов

Назначение цвета символов.

При N>15, N:= N mod 16,

GotoXY(x, y);

x, y - тип Byte

Установка курсора в позицию

( x, y ) в системе координат активного окна, экрана.

InsLine;

Вставка пустой строки.

DelLine;

ClrEol;

Удаление строки в позиции курсора. Стирание символов от позиции курсора до конца строки.

Кроме перечисленных, отметим процедуры управления яркостью символов: повышенная ( HighVideo; ), пониженная ( LowVideo; ) и нормальная ( NormVideo; ) яркость, а


также функции, возвращающие номер текущего столбца ( WhereX; ) и номер текущей строки ( WhereY; ), типа - Byte.

В процедурах TextBackGround(N); и TextColor(N); параметр N назначает цвета:

цвета символов и экрана

символов

черный.

DarkGray,

темно-серый.

LightBlue,

ярко- синий.

зеленый.

LightGreen,

ярко- зеленый.

голубой.

LightCyan,

ярко-голубой.

красный.

LightRed,

ярко-красный.

Magenta,

фиолетовый.

LightMagenta,

ярко-фиолетовый.

коричневый.

Yellow,

желтый.

LightGray,

ярко-серый.

При превышении допустимых пределов параметра N происходит преобразование N, при этом символы выводятся с мерцанием. Мерцание символов можно получить, также задавая: N:= N + 128;

В процедурах TextBackGround(N); и TextColor(N); можно применять параметр N, либо наименование цвета, например:

N:=1; TextColor(N); { либо } TextColor(Blue);

KeyPressed;

ReadKey;

1. 14. 2. Управление клавиатурой

возвращает значение True (тип Boolean) - если была нажата любая клавиша (кроме Ctrl, Alt, NumLock и т. п. ), иначе - False. возвращает символ нажатой клавиши (тип Char).

Следующие операторы выводят на экран указанную надпись до нажатия клавиши: Repeat Writeln(Нажмите скорее любую клавишу) until KeyPressed;

Следующие операторы ожидают нажатия клавиши с символом "А": Repeat Writeln(Нажмите клавишу "А"); c:=ReadKey until c=A;

В отличие от оператора Read оператор ReadKey не показывает на экране символ нажатой клавиши.

При нажатии на клавишу в буфер клавиатуры записывается соответствующий код, который считывается операторами Read/Readln либо функцией Readkey. При этом буфер клавиатуры очищается. При многократном нажатии на клавиши (без считывания программой символов) буфер клавиатуры переполняется и компьютер начинает "пищать". Для очистки буфера клавиатуры применяются операторы:

While KeyPressed Do c:=ReadKey;


Приведем пример программы, выводящей на экран в различных текстовых режимах надпись в виде ступеньки с заданным шагом "dx" по оси "х", в каждой строке "у" , начиная с позиции (1, 1).

PROGRAM FAM; Uses CRT;

var N : word; f, dx, x, y, i, j, xm, ym : byte;

for i:=0 to 9 do begin{ режимы работы монитора }

if i<4 then N:=i else N:=256+i-4; if i=9 then N:=7;

textMode(N);

xm:=lo(WindMax)+1; ym:=hi(WindMax)+1; write(xm=,xm, ym=,ym, N=,N, Нажмите Enter); readln;

TextBackGround(1); clrscr; TextColor(14);x:=1;

f:=8; dx:=3;{ f - длина фамилии + курсор, dx - приращение отступа}

for j:=1 to ym-1 do begin y:=j;

if (xm-x-f)<0 then x:=1; { контроль выхода надписи за экран } gotoXY(x, y); write(ФАМИЛИЯ); x:= x + dx; end;

Writeln; write(Нажмите Enter); readln end;

TextMode(3) END.

Практическое задание N 1. 34

1.Вывести на экран в различных текстовых режимах надпись в виде ступеньки с заданным шагом "dx" по оси " х", в каждой строке " у" , начиная с позиции (1, Ym) c направлением вверх, вправо.

2.Вывести на экран в различных текстовых режимах надпись в виде ступеньки с заданным шагом " dx<0 " по оси " х ", в каждой стороке " у " , начиная с позиции: (Xm- f, Ym) c направлением вверх, влево.

3/4. Модифицировать программы п. 1/2, выводя надписи в окнах разного цвета, с различным цветом символов. Размер окна определяется по оси "х" количеством символов в надписи плюс 2, по оси "у" размер равен 3 строчкам. После оператора GotoXY(x, y); следует оператор Window(x, y, xx, yy); и т. д.

5.В режимах N=1 и N=3 вывести на экран окна разного цвета с уменьшающимся размером (окно в окне). В первой позиции окон выводить номер окна. Использовать оператор цикла с условием ограничения размеров наименьшего окна, например: (x2- x1=2) or (y2-

6.В режимах N=1 и N=3 вывести на экран окна разного цвета с координатами, определяемыми функцией Random с ограничением по размеру экрана, например: x1:=Random(Xm-

x2:=x1+Random(Xm-x1); Окна выводятся в операторе цикла с условием: до нажатия любой клавиши.



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53]