{Выводим фон) mov al,es:[bx] mov al,BCol
mov es:[bx],al {Устанавливаем все биты} @0:
end;
end end end; {WriteChar} /———————————————;
Function GraphRead(var F: TextRec): Integer; Far;
(Осуществляет ввод текста для процедур Read/ReadLn} var
XOt : Byte; {Начальное положение курсора}
YUp,YDn: Integer; {Размер курсора}
InsFlag: Boolean; {Флаг режима вставки}
Cur : Pointer; (Изображение курсора}
Back : Pointer; {Фон курсора}
S : String; {Строка ввода}
С '. Char; {Очередной символ} const
CSize: Word =• 0;
Procedure SetCursor;
{Устанавливает форму курсора} var
Filllnfo: FillSettingsType;
begin
if CSizeOO then begin
FreeMem(Back,CSize) ;
FreeMem(Cur,CSize) end;
YDn :== Yg+YF-1;
if InsFlag then YUp := YDn - 2
else
YUp :- Yg;
CSize := ImageSize(Xg,YUp,Xg+XF-l,YDn) ;
GetMem(Back,CSize) ;
Getlmage (XgiYUp^g+XF-l^YDr^Back^) ;
GetFillSettings(Filllnfo) ;
SetFillStyle(SolidFill,TCol) ;
Bar(Xg,YUp,Xg+XF-l,YDn) ;
with Filllnfo do
SetFillStyle(Pattern,Color) ;
GetMem(Cur,CSize) ;
Getlmage(Xg,YUp,Xg+XF-1,YDn,Cur^) ;
PutImage (XgyYUptBack^NormalPut) ;
end; {SetCursor} {——————}
Procedure Cursor;
{Создает изображение мигающего курсора} var
k: Integer;
const
D = 10;
begin
Getlmage(Xg,YUp,Xg+XF-1,YDn,Bac^) ;
while not KeyPressed do begin