anchor.diff:  
   
   procedure TKMMemo.MouseDown(X,Y: Integer; Shift: TShiftState; Button: TMouseButton);
  -var OldCursorPos: Integer;
  +var
  +  oldCursorPos: Integer;
   begin
     inherited;
   
  
positive.code: 
  
  procedure TKMMemo.MouseMove(X,Y: Integer; Shift: TShiftState);
  var OldCursorPos: Integer;
      CharPos: TKMPoint;
  begin
    inherited;
    if (ssLeft in Shift) and (fSelectionInitialPos <> -1) then
    begin
      CharPos := GetCharPosAt(X, Y);
  
      // To rotate text to top while selecting
      if (Y-AbsTop-3 < 0) and (TopIndex > 0) then
      begin
        Dec(CharPos.Y);
        SetTopIndex(TopIndex-1);
      end;
      // To rotate text to bottom while selecting
      if (Y-AbsTop-3 > fHeight)
        and (fScrollBar.Position < fScrollBar.MaxValue) then
      begin
        CharPos.Y := EnsureRange(CharPos.Y+1, 0, fItems.Count);
        SetTopIndex(TopIndex+1);
      end;
  
      OldCursorPos := CursorPos;
      CursorPos := PointToLinearPos(CharPos.X, CharPos.Y);;
      UpdateSelection(OldCursorPos);
    end;
  end;
  
  
negative.code: unit KM_Controls;
  {$I KaM_Remake.inc}
  interface
  uses
  