Тексты программ 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; {Стереть рамку}