308_____________________________________________Приложение

Y2 := YB-yy*DYE;

{Чертим линию в рабочей поле) Line(Xl,Yl,X2,Y2) end;

end;

X := хх; {Новое положение пера) Y :- уу end;

(Чертим правую границу символа} WidthX := XE+Widths[N]*DXE;

SetColor(Cyan) ;

Line(WidthX,YE,WidthX,YE2) ;

{Повторяем символ в окне повтора} RepChar end; {GetChar} {——————}

Procedure SetChar;

{Помещает символ в таблицу} var

k: Integer;

N: Byte;

W,op: Word;

Data: AW;

X,Y,XX1,YY1,XX2,YY2: Shortint;

Xc,Yc: Integers-begin

if not Tabl(N) then Exit;

{Удаляем старый описатель} if LengD[N]<>0 then

FreeMem(Chars[N],LengD[N]);

Widths[N] :«= (WidthX-XE) div DXE;

LengD[N] :" 0;

{Цикл по векторам} X :° 0;

Y :- 0;

for k :- 1 to NVecE do with VecE[k] do begin

XXI := (Xl-XE) div DXE;

XX2 := (X2-XE) div DXE;

YY1 := (YB-Y1) div DYE;

YY2 := (YB-Y2) div DYE;

if (xoxxi) or (YOYYI) then begin {команда перехода} if YYKO then inc(YYl,128) ;

inc(LengD[N]) ;

Data[LengD[N]] :« YYl «Ы 8+ХХ1 or $80 end;

X := XX2;

Y :•= YY2;

if YY2<0 then inc(YY2,128);

inc(LengD[N]) ;

Data[LengD[N]] :- YY2 ahl 8+XX2 or $8080;

end;

{Формируем переход в конец символа} inc (LengD [N]) ;

Data[LengD[N]] :- Widths[N] or $80;