Тексты программ 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