Тексты программ_____ ______________________ _____________283

TextCooX := round(X/MaxChar)+1 else

TextCooX := 0 end; {TextCooX}

^——————————.————;

Function TextCooX(Y: Integer): Byte;

(Возвращает ближайшую текстовую координату по заданной вертикальной графической координате! begin

if (FontoNIL) and (Y in [0. .GetMaxY]) then TextCooY := round(Y/MaxLine)+1

else

TextCooY := 0 end; {TextCooY} ^__————_——————————;

Function WhereX: Byte;

(Возвращает горизонтальную координату курсора} begin

if FontOMIL then

WhereX := Xt-Xlt+1 else

WhereX := 0 end; {WhereX} ^__——————————————/

Function WhereY: Byte;

^Возвращает горизонтальную координату курсора} begin

if FontOMIL then

WhereX := Yt-Ylt+1 else

WhereY := 0 end; (fihereY} ^_-_———————————————;

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

{Устанавливает текстовое окно} begin

if (FontoNIL) and (XI in [1. .MaxChar]) and (Yl in [1..MaxLine]) and (X2 in [1..MaxChar]) and (Y2 in [1..MaxLine]) and (X2>=X1) and (Y2>=Y1) then begin

Xt := XI;

Yt := Yl;

Xg :== XF*pred(Xt) ;

Yg := YF*pred(Yt) ;

Xlt := XI;

Ylt := Yl;

X2t := X2;

y2t := Y2;

Xlg := XF*pred(Xlt) ;

Ylg := YF*pred(Ylt) ;

X2g := XF*X2t;

Y2g := YF*Y2t end end; {Window} ^————————————————;

Procedure SetWindow(XI,Y1,X2,Y2,Border: Byte;

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

(Устанавливает окно, очищает его и обводит рамкой}