anchor.diff:       sb.Position := APosition;
      end;
   begin
  -
     UpdateScrollbar(hScrollBar,APosition.x);
     FMapHPos := APosition.x;
   
  -
     UpdateScrollbar(vScrollBar,APosition.y);
     FMapVPos := APosition.y;
   
     InvalidateMapAxis;
  +end;
  +
  +procedure TfMain.ChangeMapPosition(ADelta: TPoint);
  +var
  +  new_pos: TPoint;
  +begin
  +  new_pos.x:=FMapHPos + ADelta.x;
  +  new_pos.y:=FMapVPos + ADelta.y;
  +  SetMapPosition(new_pos);
   end;
   
   procedure TfMain.SetMapViewMouse(x, y: integer);
  
positive.code: var
    dx,dy: integer;
  begin
    if not Assigned(FSelectedObject) then
    begin
      Exit;
    end;
  
    dx := 0;
    dy := 0;
  
  
negative.code: 
    if (dx<>0) or (dy<>0) then
    begin
      if Assigned(FSelectedObject) then
      begin
        MoveObject(FSelectedObject, FMap.CurrentLevelIndex, FSelectedObject.X + dx, FSelectedObject.Y + dy);
      end
      else
      begin
  
        if ssShift in Shift then
        begin
          dx *= FViewTilesH div 2 - 1;
          dy *= FViewTilesV div 2 - 1;
        end;
  
        ChangeMapPosition(Point(dx, dy));
      end;
  
      Key := VK_UNKNOWN;
      Exit;
    end;
  