282 Приложение

Procedure Scrolling(N: Integer);

{Осуществляет сдвиг содержимого окна вверх или вниз;

N - количество строк, на которые сдвигается окно (N < 0 - сдвиг вниз)} var

k: Byte;

х,у: Word;

LineSize: Word;

P: Pointer;

Filllnfo: FillSettingsType;

begin

GetFillSettings(Filllnfo) ;

SetFillStyle (SolidFUl.BCol) ;

LineSize :- ImageSize(xlg,ylg,x2g,ylg+YF);

if abs(N»=Y2t-Ylt+l then

Bar(xlg,ylg,x2g,y2g) (Очистить окно} else if N>0 then

begin {Сдвиг вверх} GetMem(P,LineSize);

for k := 0 to YZt-Ylt-N do begin

GetImagetxIgtylg+lN+krYFfXPgtylg+fN+k+l^YF,?^) ;

PutImage(xlg,ylg+k*YF,P",NormalPut) end;

FreeMem(P,LineSize);

Bar(xlg,y2g-N*YF,x2g,y2g) and else if N<0 then

begin {Сдвиг вниз! GetMem(P,LineSize);

N :=- abs(N) ;

for k :- Y2t-Ylt-N downto 1 do begin

Getlmage(xlg,ylg+(k-1)*YF,x2g,ylg+k*YF,P^ ;

PutImage(xlg,y2g-(Y2t-Ylt-N-k+l)*YF,P",NormalPut) end;

FreeMem(P,LineSize) ;

Bar(xlg,ylg,x2g,ylg+N*XF) end;

with Filllnfo do

SetFillStyle(Pattern,Color) end; {Scrolling} /————————————————;

Procedure TextBackGround(Color: Byte);

(Устанавливает цвет фона для символов} begin

BCol := Color end; fTextBackGround} _•————————————————;

Procedure TextColor(Color: Byte);

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

TCol :== Color end; {TextColor} ,———————.———— —————^

Function TextCooX(X: Integer): Byte;

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

it (FontoNIL) and (X in [0. .GetMaxX]) then