anchor.diff:      FMouseDown: boolean;
       FMouseDownPnt: TPoint;
       FMouseDownDbl: boolean;
  +    FMouseDownButton: TMouseButton;
  +    FMouseDownShift: TShiftState;
       FMouseDrag: boolean;
   
       //colors
  
positive.code:     FOnTabMove: TATTabMoveEvent;
      FOnTabChangeQuery: TATTabChangeQueryEvent;
  
      procedure DoPaintTo(C: TCanvas);
      procedure DoPaintBgTo(C: TCanvas; const ARect: TRect);
      procedure DoPaintTabTo(C: TCanvas; ARect: TRect; const ACaption: atString;
  
negative.code:   end;
  end;
  
  procedure TATTabs.MouseDown(Button: TMouseButton; Shift: TShiftState;
    X, Y: Integer);
  begin
    FMouseDown:= true;
    FMouseDownPnt:= Point(X, Y);
    FMouseDownButton:= Button;
    FMouseDownShift:= Shift;
  
    FTabIndexOver:= GetTabAt(X, Y);
    SetTabIndex(FTabIndexOver);
  
    Invalidate;
  end;
  
  
  procedure TATTabs.DoHandleClick;
  var
    R: TRect;
  begin
    if FMouseDownButton=mbMiddle then
    begin
      if FTabMiddleClickClose then
        if FTabIndexOver>=0 then
  