anchor.diff:      procedure SetOptVarWidth(AValue: boolean);
       procedure SetScrollPos(AValue: integer);
       procedure SetTabIndex(AIndex: integer);
  -    procedure GetTabCloseColor(AIndex: integer; const ARect: TRect; var AColorXBg,
  -      AColorXBorder, AColorXMark: TColor);
  +    procedure GetTabXProps(AIndex: integer; const ARect: TRect; out AColorXBg,
  +      AColorXBorder, AColorXMark: TColor; out AMouseOverX: boolean; out ARectX: TRect);
       function IsIndexOk(AIndex: integer): boolean;
       function IsShowX(AIndex: integer): boolean;
       function IsPaintNeeded(AElemType: TATTabElemType;
  
positive.code:     procedure DoPaintButtonsBG(C: TCanvas);
      procedure DoPaintColoredBand(C: TCanvas; PL1, PL2, PR1, PR2: TPoint; AColor: TColor);
      procedure DoPaintTo(C: TCanvas);
      procedure DoTextOut(C: TCanvas; AX, AY: integer; const AClipRect: TRect; const AText: string);
      procedure DoPaintBgTo(C: TCanvas; const ARect: TRect);
      procedure DoPaintTabTo(C: TCanvas; ARect: TRect; const ACaption: TATTabString;
        AColorBg, AColorBorder, AColorBorderLow, AColorHilite, AColorCloseBg,
    AColorCloseBorder, AColorCloseXMark, AColorFont: TColor; AShowCloseBtn,
    ATabModified, ATabActive: boolean; AImageIndex: integer;
    AFontStyle: TFontStyles);
      procedure DoPaintArrowTo(C: TCanvas; ATyp: TATTabTriangle; ARect: TRect;
        AColorArr: TColor);
      procedure DoPaintUserButtons(C: TCanvas);
  
negative.code:     if i<>FTabIndex then
      begin
        RRect:= GetTabRect(i);
        GetTabXProps(i, RRect, NColorXBg, NColorXBorder, NColorXMark, bMouseOverX, RectX);
  
        bMouseOver:= i=FTabIndexOver;
        bShowX:= IsShowX(i);
  
        if bMouseOver and not _IsDrag then
          NColorBg:= FColorTabOver
        else
          NColorBg:= FColorTabPassive;
  
        if bMouseOver then
          ElemType:= aeTabPassiveOver
        else
          ElemType:= aeTabPassive;
  