252________________________________________________Приложение
(Сохраняет текущее состояние страницы PAGE в буфере BOF} ^——————————————————————————————»
I Подпрограммы управления окнами I *—————————————.————————————————*;
Procedure ChangeWindAttribute(Page,01dAtt,NewAtt: Byte);
{Заменяет в окне PAGE атрибут OLDATT на значение МЕИАТТ}
Procedure CopyWind(Page,X,Y: Byte; var Buf; LX,LY: Byte);
(Переносит копию окна из памяти на страницу}
Procedure GetWindow (Pac-e: Byte);
(Восстанавливает состояние экрана, бывшее перед обращением к процедуре PUTWINDOff: PAGE - номер страницы, куда была скопирована активная}
Procedure PutWindow(Xl,Yl,X2,Y2,Text,Back,Bord,Page: Byte;
Header: String;Clip,Build,Play: Boolean);
(Сохраняет активную страницу в заданной текстовой странице, создает в активной странице окно с заданными атрибутами, очищает его и обводит рамкой:
XI...Y2 - координаты окна; TEXT - цвет символов; BACK - цвет фона;
BORD - константа, указывающая тип рамки; PAGE - номер 0. .Ma.xPa.ge страницы, куда будет скопирована активная страница; HEADER - заголовок окна;
CLIP - признак границ (TRUE - исключая XI...Y2, FALSE - включая границы XI...Y2); BUILD- признак развертывания окна; PLAY - надо ли сопровождать звуком}
Procedure SaveWind(Page: Byte; var Buf; var LX,LY: Byte);
(Сохраняет копию окна в буфере BUF}
Procedure SetPageWindow (Page,XI,Y1,X2,Y2,Bord: Byte;
Header: String; Clip: Boolean);
(Создает окно в странице PAGE и обводит его рамкой: PAGE - номер страницы;
XI...Y2 - координаты окна; BORD - константа, указывающая тип рамки;
HEADER - заголовок окна; CLIP - признак границ (TRUE - внутри XI...Y2, FALSE - включая границы XI...Y2). Символы рамки выводятся с текущими атрибутами, окно очищается}
Procedure SetWindAttribute(Page,Attr: Byte);
(Устанавливает новый атрибут окна}
Procedure SetWindow (Xl,Yl,X2,Y2,Bord: Byte; Header: String; Clip,Build,Play:
Boolean);
{Создает окно в активной странице и обводит его рамкой: XI...Y2 - координаты окна; BORD - константа, указывающая тип рамки; HEADER - заголовок окна;
CLIP - признак границ (TRUE - внутри XI...Y2, FALSE - включая границы XI...Y2); BUILD- признак развертывания окна; PLAY - надо ли сопровождать звуком. Символы рамки выводятся с текущими атрибутами, окно очищается}
Procedure WindMoveTo(Page,X,Y: Byte; var Buf; ClipW: Boolean);
(Перемещает окно в новое положение: PAGE - номер страницы; X,Y - новые координаты левого верхнего угла; BUF - вид экрана без окна; CLIPW- признак отсечки изображения}
Procedure WindMoveRel(Page: Byte; DX,DY: Integer; var Buf; ClipW: Boolean);
(Смещает окно относительно прежнего положения: PAGE - номер страницы;
DX,DY- приращения координат левого верхнего угла; BUF - вид экрана без окна;
CLIPW- признак отсечки изображения/
Function WindSize(Page: Byte): Word;
(Возвращает размер буфера для сохранения окна}