anchor.diff:    FDraggingObject := ADraggingObject;
     FShiftX:=FDraggingObject.X - CurrentX;
     FShiftY:=FDraggingObject.Y - CurrentY;
  +  fMain.FDragging := Self;
  +  inherited AutoCreate(fMain);
  +end;
  +
  +destructor TObjectDragProxy.Destroy;
  +begin
  +  fMain.FDragging := nil;
  +  inherited Destroy;
   end;
   
   procedure TObjectDragProxy.Drop;
  
positive.code:     FShiftX, FShiftY: Integer;
      FDraggingObject: TMapObject;
    public
      constructor Create(ADraggingObject: TMapObject; CurrentX, CurrentY: integer);
      procedure Drop; override;
      procedure Render(x, y: integer); override;
    end;
  
negative.code: constructor TTemplateDragProxy.Create(ADraggingTemplate: TObjTemplate);
  begin
    FDraggingTemplate := ADraggingTemplate;
    inherited AutoCreate(fMain);
  end;
  
  procedure TTemplateDragProxy.Drop;
  