anchor.diff:    Invalidate;
   end;
   
  -procedure TATTabs.SwitchTab(ANext: boolean);
  +procedure TATTabs.SwitchTab(ANext: boolean; ALoopAtEdge: boolean=true);
   begin
     if TabCount>1 then
       if ANext then
       begin
         if TabIndex=TabCount-1 then
  -        TabIndex:= 0
  +      begin
  +        if ALoopAtEdge then
  +          TabIndex:= 0;
  +      end
         else
           TabIndex:= TabIndex+1;
       end
       else
       begin
         if TabIndex=0 then
  -        TabIndex:= TabCount-1
  +      begin
  +        if ALoopAtEdge then
  +          TabIndex:= TabCount-1;
  +      end
         else
           TabIndex:= TabIndex-1;
       end;
  
positive.code:     procedure Clear;
      function DeleteTab(AIndex: integer; AAllowEvent, AWithCancelBtn: boolean): boolean;
      procedure MakeVisible(AIndex: integer);
      procedure ShowTabMenu;
      procedure SwitchTab(ANext: boolean);
      procedure MoveTab(AFrom, ATo: integer; AActivateThen: boolean);
      procedure DoScrollLeft;
      procedure DoScrollRight;
  
negative.code:     function GetRectOfButton(AButton: TATTabButton): TRect;
      function GetRectOfButtonIndex(AIndex: integer; AtLeft: boolean): TRect;
      function GetScrollPageSize: integer;
      procedure SetOptButtonLayout(const AValue: string);
      procedure SetOptVarWidth(AValue: boolean);
      procedure SetTabIndex(AIndex: integer);
  