Тексты программ ___ ______ _______ _„..„_. 299

FontRead(Off sets[k],2) else

Offsets[k] := 0;

{Заполняем таблицу ширин) MaxW := 0;

for k := 0 to 255 do

if k in [FirstChar..LastChar] then begin

FontRead(Widths[k],1) ;

if Widths[k]>MaxW then

MaxW := Widths(k] end else

Widths[k] :" 0;

if MaxW<20 then MaxW := 20;

{Готовим память и считываем данные) for k := 0 to 255 do

LengD[k] := 0; (Обнуляем таблицу длин} for k := FirstChar to LastChar do begin

if k=LastChar then

LengD[k] := FileSize-Offsets[k]-FontPara.DataOffset

else

LengD(k] := Offsets[k+1]-Off sets[k];

if LengD[k]<>0 then begin

GetMem(Chars[k],LengD[k]) ;

FontRead(Chars[k]",LengD[k]) end end;

Close(F) ;

end; {with FontData) end; {ReadData} f—————} Procedure BuildScreen;

{Переводит дисплей а графический реяшм, вычисляет константы и создает экран)

procedure PutCur(var Cur: TMouseMask) ;

{Сканирует изображение в левом верхнем углу экрана и формирует маску указателя мыши} var

х,у: Byte;

b: Word;

begin

for у := 0 to 15 do begin b :° 0;

for x := 0 to 15 do

if GetPixel (x, y) OGetBkColor then b := b or ($8000 shr x) ;

Cur[l,y] := b;

Cur[0,y] := not b end end; {PutCLir} {—————} var

D,R,E,k,n,X,Y: Integer;