inc(LengD[N]) ;

Data[LengD[N]] :» 0; {Конец команд) {Записываем в память} LengD[N] :-2*LengD[N];

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

Move(Data,CharstN]",LengC[N]) ;

{Чертим символ в таблице} HideMouse;

Хс := XT+(N mod 16)*DXT;

Yc := YT+(N div 16)*DYT;

SetFillStyle(SolidFill,Black) ;

Bar(Xc,Yc,Xc+DXT-l,Yc+DYT-l);

SetColor(White) ;

SetWriteMode(NormalPut) ;

OutChar(Xc,Yc+DYT,N,DXT/MaxW,DXT/(MaxH+5)) ;

SetColor(Yellow) ;

SetWriteMode(XORPut) ;

ShowMouse;

ChangeF := True end; {SetChar} {——————}

function Nedfvar x,y: Integer): Boolean;

(Возвращает TRUE и координаты узла, если мышь попала в его окрестности} var

Is: Boolean;

begin

Is := False;

у := YE;

repeat

X := XE;

repeat

Is := MouseIn(x-dXm,y-dYm,x+dXin,y+dYm);

if not Is then

inc(x,DXE) until Is or (x>XE2);

if not Is then

inc(y,DYE) until Is or (y>YE2) ;

Ned := Is end; {Ned} {——————}

Procedure MouseInNed;

{Проверяет отметку мышью узла сетки} var

XM,YN: Integer;

begin

if not Ned(XN,YN) then

Exit; /Яе попали в узел} HideMouse;

while MousePressed do;

MouseGotoXY(XN,YN) ;

if not MPF then

begin /Запоминаем узел} MPF := True;

XOg := XN;

YOg := YN;

Xlg := XOg Ylg :- YOg;

SetColor(Yellow) ;

SetWriteMode(XORPut);