Организация окон и вывод на экран

Модуль 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.