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;