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); /Стираем линию}