anchor.diff:      procedure   SetName(const NewName: TComponentName); override;
     public
       constructor Create(AOwner: TComponent); override;
  +    constructor CreateWithTitle(AOwner: TComponent; const AText: TfpgString = ''); virtual;
       destructor  Destroy; override;
  +    procedure   AfterConstruction; override;
       property    PageIndex: Integer read GetPageIndex write SetPageIndex;
       property    PageControl: TfpgPageControl read FPageControl write SetPageControl;
       property    TabVisible: boolean read FTabVisible write FTabVisible;
  
positive.code:     function    GetActivePageIndex: integer;
      function    GetPage(AIndex: integer): TfpgTabSheet;
      function    GetPageCount: Integer;
      procedure   InsertPage(const APage: TfpgTabSheet; SuppressOnChangeEvent: boolean = False);
      procedure   RemovePage(const APage: TfpgTabSheet);
      procedure   SetActivePageIndex(const AValue: integer);
      procedure   SetActivePage(const AValue: TfpgTabSheet);
      function    MaxButtonWidthSum: integer;
      function    MaxButtonHeightSum: integer;
      function    MaxButtonWidth: integer;
  
negative.code:   Result := FPages.Count;
  end;
  
  procedure TfpgPageControl.InsertPage(var APage: TfpgTabSheet; SuppressOnChangeEvent: boolean = False);
  begin
    if FPages.IndexOf(APage) <> -1 then
      Exit; //==>   The page has already been added.
    FPages.Add(APage);
    PositionTabSheets;
    { TODO: This behaviour could maybe be controlled by a Options property }
    if FPages.Count=1 then
    begin
  