Тексты программ 269

SetAttribute(Page,Xl,Yl,X2,Y2,Attr) end

end; {SetWindAttribute} ^——————————————/

Procedure SetWindow (Xl,Yl,X2,Y2,Bord: Byte;

Header: String; Clip,Build,Play: Boolean);

{Создает окно в активной странице и обводит его рамкой} var

xxl,yyl,xx2, yy2,x,y,dx,dy,k: Byte;

dt: Integer;

const

TonBeg = 400; {Начальный тон I TonEnd •" 800; {Конечный тон} Pause - 5;

N = 10;

begin

if Build and ((x2-xl>-4) or (y2-yl>=4)) then

begin

{Начальное положение левого верхнего угла окна} х := (x2-xl) div 2;

у := (у2-у1) div 2;

(Количество промежуточных окон} dx := ((x2-xl) div 2) div N;

dy := ((y2-yl) div 2) div N;

if dx=0 then inc(dx) ;

if dy-0 then inc(dy);

if x>l then begin

xxl := xl+x-1;

xx2 :" x2-x+l end else begin

xxl :- xl;

xx2 :- x2 end;

if y>l then begin

yyl :- yl+y-1;

yy2 := y2-y+l end else begin

yyl :» yl;

yy2 :- y2 end;

(Изменение тона}

dt := (TonEnd-TonBeg) div N;

for k 0 to N-1 do {Цикл построения} begin

if Play then

Sound (TonBeg+dt*k) ; (Включаем э-вук/ SetPageWindow(ActivePage,xxl,yyl,xx2,yy2,Bord,Header,Clip);

(Увеличиваем границы окна} if xxl>xl then dec(xxl,dx) ;

if xx2<x2 then