Ylg := YM;

if (XOgoXlg) or (YOgOYlg) then Line (XOg,YOg,Xlg, Ylg) ;

ShowMouse end;

end; {MouseMove} {——————}

Procedure Pattern;

{Выбирает и помещает в рабочее поле образец} var X,Y,xx,yy: Integer;

k,op,W: Word;

PW^AW;

N: Byte;

begin

if not Tabi(N) than

Exit; (Выход по правой кнопке} SetColor(LightGray) ;

PW := Chars[N]; {Адрес описателей} X := XE; (Начальные координаты пера} У := YB;

{Цикл по командам} for k := 1 to LengD[N] div 2 do begin

H := PW^I-k]; (Очередное слово} ор := H and $8080; (Код операции) W := W acor op;

xx := W and 127; {Координата Х} yy := W shr 8y {Координата Y) if yy>63 then УУ ••= УУ-128;

xx :- XE+xx*DXE;

yy := YB-yy*DYE;

if op-$8080 then Line (X, У, xoc, yy) ;

X := xx; {Новое положение пера} Y := yy end;

SetColor(Yellow) end;

/—————;

begin {Run}

SetWriteMode(XORPut) ;

NVecE :•= 0; (Нет векторов в WE} MPF := False; {Мышь не нажималась} SetColor(Yellow) ;

GetMouseState(BM,XM,YM); (Начальное состояние ыыши} While True do /Бесконечный цикл до команды "Конец" } begin

{Проверяем выбор меню и клавиатуру} if KeyOrMousePressed then case ReadKeyOrMouse of

#0: case ReadKeyOrMouse of

#1 GetChar;

#2 SetChar;

#3 ClearWE;

#4 Pattern;

#5 Savefont;

#6 Exit;