Иллюстрированный самоучитель по Tirbo Pascal



              

Текстовый вывод на экран - часть 4


Uses CRT; 

var

С: Char 

begin

TextBackground(red) ;

ClrScr;{Заполняем экран красным цветом}

WriteLn('Нажмите любую клавишу...'); 

С := ReadKey; {Ждем нажатия любой клавиши} 

TextBackground(Black) ;

ClrScr {Восстанавливаем черный фон экрана} 

end.

Процедура Window.

Определяет текстовое окно - область экрана, которая в дальнейшем будет рассматриваться процедурами вывода как весь экран. Сразу после вызова процедуры курсор помещается в левый верхний угол окна, а само окно очищается (заполняется цветом фона). По мере вывода курсор, как обычно, смещается вправо и при достижении правой границы окна переходит на новую строку, а если он к этому моменту находился на последней строке, содержимое окна сдвигается вверх на одну строку, т.е. осуществляется «прокрутка» окна. Заголовок процедуры:

Procedure Window(XI,Y1,X2,Y2: Byte);

ЗдесьX1...Y2 - координаты левого верхнего (XI,Y1) и правого нижнего (X2,Y2) углов окна. Они задаются в координатах экрана, причем левый верхний угол экрана имеет координаты (1,1), горизонтальная координата увеличивается слева направо, а вертикальная - сверху вниз.

В следующем примере иллюстрируется вывод достаточно длинного сообщения в двух разных окнах.

Uses CRT; 

var

k: integer; 

begin

{Создаем левое окно -желтые символы на синем фоне:}

TextBackground(Blue);

Window(5,2,35,17);

TextColor(Yellow);

for k := 1 to 100 do

Write(' Нажмите клавишу Enter...');

ReadLn; {Ждем нажатия Enter}

ClrScr; {Очищаем окно}

{Создаем правое окно - белые символы на красном фоне:}

TextBackground(Red);

TextColor(White);

Window(40,2,70,17);

for k := 1 to 100 do

Write(' Нажмите клавишу Enter...');

ReadLn;

TextMode(C080) {Сбрасываем все установки} 

end.

Обращение к процедуре Window игнорируется, если какая-либо из координат выходит за границы экрана или если нарушается одно из условий: Х2>Х1 и Y2>Y1. Каждое новое обращение к Window отменяет предыдущее определение окна. Границы текущего окна запоминаются в двух глобальных переменных модуля CRT: переменная WindMin типа Word хранит X1 и Y1 (XI - в младшем байте), а переменная того же типа WindMax - Х2 и Y2(X2 - в младшем байте). При желании Вы можете изменять их нужным образом без обращения к Window. Например, вместо оператора




Содержание  Назад  Вперед