Тексты программ 271

if not ClipW then {Корректируем положение} begin

while X+LX-l>MaxChar do dec (X) ;

while Y+LY-l>MaxLine do

dec(Y) end;

{Переносим окно на новое место}

CopyWind(Page,X,Y,Cop,LX,LY) ;

{Запоминаем новые границы окна} it Page=ActivePage then

SetActivePage(Page) end end; {WindMoveTo} f—— ——-.————————-.————;

Function WindSize(Page: Byte): Word;

{Возвращает размер буфера для сохранения окна} var

X1,Y1,X2,Y2: Byte;

begin

if Page<=MaxPage then with Pages[Page] do begin

XI := Lo(WBondUp) ;

Yl := Hi(WBondUp) ;

X2 := Lo(WBondDown)+2;

У2 :» Hi(WBondDown)+2;

WindSize := (X2-X1+1) * (Х2-П+1) *2 end else

WindSize := 0 end; {WindSize} /===»====»=.==; end. {TextCRT} /==.=====-..«——/

П2. МОДУЛЬ ПОДДЕРЖКИ ТЕКСТОВОГО ВВОДА/ВЫВОДА В ГРАФИЧЕСКОМ РЕЖИМЕ F.GRTEXT

Описание модуля см. п. 1.3.

{$N+,E+} ^=====»»=====; onit F_GrText; ^=s=——-=—»—»==;

/

Модуль поддержки текстового ввода/вывода

в графическом режиме

} ^—————————————————————————————/

INTERFACE

^—————————————————————————————}

Uses DOS,Graph,CRT;

const

AppHandle: Boolean = True; {Флаг управления аппаратной поддержкой CGA/EGA/VGA)

ESCFlag : Boolean = False; {Флаг завершения ввода no ESC} {

Следующие константы используются для указания типа рамки при обращении к процедуре SETtlINDOff. } const

EmptyBorder - 0; {Стереть рамку}