Window(x1,y1,x2,y2:byte);
Данная процедура определяет на экране текстовое окно с координатами верхнего левого угла экрана x1,y1, нижнего правого x2,y2. Максимальный размер окна определяется выбранным режимом. Режиму с 80 столбцами соответствует окно (1,1,80,25),режиму с 40 столбцами окно (1,1,40,25). Процедура Window помещает курсор в т.(1,1) установленного окна.
Многие процедуры и функции CRT работают относительно координат текущего окна, включая Window, ClrEol, ClrScr,DelLine, GotoXY, InsLine, WhereX, WhereY и все процедуры ввода/вывода. Координаты текущего окна хранятся соответственно в переменных WindMin и WindMax типа word, и отсчитываются отностительно точки с координатами (0,0), а не (1,1). Младший байт содержит значение координаты Х, а старший байт Y, поэтому координаты верхнего левого угла определяются выражениями:
x1:=Lo(WindMin),
y1:=Hi(WindMax),
координаты правого нижнего:
x2:=Lo(WindMax) ,
y2:=Hi(WindMax).
Пример.
(* вывод на экран окон произвольного размера *)
(* различного цвета фона *)
Uses crt;
Var x,y:integer;
Begin
ClrScr;
Randomize;
repeat
x:=random(MaxX);
y:=random(MaxY);
Window(x,y,x+random(10),y+random(8)); { определение }
TextbackGround(random(16)); { размера окна }
Delay(100);
ClrScr; { заполнеие фоном }
until KeyPressed;
End.
Задание.
Вывести изображение российского трехцветного флага в центре экрана размером 30*15. Каждая цветовая полоса задается текстовым окном ( ширина 30 позиций, высота 5) и заполняется соответствующим цветом.