При вертикальном сдвиге текстового экрана вверх строки 2 .. 25 переписываются в строки 1 .. 24, а в строку 25 вводятся данные из оперативной памяти. Сдвиг вниз осуществляется аналогично.
Вертикальный сдвиг экрана называют также скроллингом (scroll - рулон, свиток).
Пусть для заполнения строки экрана в программе используется переменная BufRow типа ScreenRowArray.
Вертикальный сдвиг вверх:
Procedure ScreenToUp;
Begin
Move(Screen[2],Screen[1],3840);
Screen[25]:=BufRow;
End { ScreenToUp };
Вертикальный сдвиг вниз:
Procedure ScreenToDown;
Begin
Move(Screen[1],Screen[2],3840);
Screen[1]:=BufRow;
End{ ScreenToDown };
В программах иногда требуется выполнять также горизонтальный сдвиг экрана, в частности при обработке текста.
Пусть нам требуется сдвинуть экран на пять столбцов влево. В этом случае левые пять столбцов исчезнут, весь текст сдвинется влево, а самые правые пять столбцов будут очищены. Сдвиг вправо осуществляется аналогично.
Ниже приведена процедура для сдвига текстового экрана на один столбец влево.
Procedure ScreenToLeft;
Var i : byte;
Begin
Fori:=1 to 25 do
Begin
Move(Screen[i,2],Screen[i,1],158); { 79 × 2 = 158 }
Screen[i,80].Symbol:=' ';
End;
End { ScreenToLeft };
В столбцы, очищенные при горизонтальном сдвиге, в дальнейшем можно записать какую-либо информацию из оперативной памяти.