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