Тексты программ ___ ______ _______ _„..„_. 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;