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;