ShowMouse;

MouseScreen;

Exit end;

if NVecE-0 then

Exit; {Пустое рабочее поле} Loop:

GetMouseState(x,xlm,ylm) ;

if (not MousePressed) and MouseF then begin

HideMouse;

MouseGraphCursor(CurM,0,0);

ShowMouse;

MouseScreen;

MouseF :" False;

Exit end;

x2m := xlm+dXm;

y2m := ylm+dYm;

xlm := xlm-dXm;

ylm := ylm-dYm;

{Проверяем все векторы} n := 1;

Is :a= False;

repeat

with VecE[n] do if (xl=x2) and (xl>=xlm) and (xl<=x2m) then {Вертикальный вектор}

Is := ((yl>=y2m) and (y2<=ylm)) or ((yl<=ylm) and (y2>=y2m)) else if (yl=y2) and (yl>=ylm) and (yl<=y2m) -then (Горизонтальный вектор}

Is := ((xl>=xlm) and (x2<=x2m)) or ( (xl<=x2m) and (x2>»-xlm)) else {Наклонный вектор} if (((yl>=y2m) and (y2<=ylm)) or ((yl<=ylm) and (y2>=y2m))) and (((xl>=xlm) and (x2<»St2m)) or ((xl<=x2m) and (x2>=xlm))) then begin

kO := (y2-yl)/(x2-xl);

yO := yl-k0*xl;

for x := xlm to x2m do if not Is then begin

у := Round(k0*x+y0) ;

Is := (y>=ylm) and (y<»y2m) ;

if not Is then if x=xlm then

Sign := y<ylm else

Is:= (Sign and (y>ylm)) or (not Sign and (y<ylm)) end end;

if not Is then

inc(n) until Is or (n>NVecE) ;

if Is then

begin {Удаляем вектор! HideMouse;

SetColor(Yellow) ;

SetHriteMode(XORPut) ;

with VecE[N) do

Line(xl,yl,x2,y2); /Стираем линию}