anchor.diff:    end;
   
     //caption
  -  FBitmapText.Canvas.Brush.Color:= ATabBg;
  -  FBitmapText.Canvas.FillRect(Rect(0, 0, FBitmapText.Width, FBitmapText.Height));
  -  FBitmapText.Canvas.Font.Assign(Self.Font);
  -
  +  C.Font.Assign(Self.Font);
     if AModified then
  -    FBitmapText.Canvas.Font.Color:= FColorFontModified;
  +    C.Font.Color:= FColorFontModified;
  +
     TempCaption:= IfThen(AModified, FTabShowModifiedText) + ACaption;
   
  -  NIndentTop:= (FTabHeight - FBitmapText.Canvas.TextHeight('Wj')) div 2 + 1;
  +  NIndentTop:= (FTabHeight - C.TextHeight('Wj')) div 2 + 1;
   
     {$ifdef WIDE}
  -  Windows.TextOutW(FBitmapText.Canvas.Handle, 0, NIndentTop, PWideChar(TempCaption), Length(TempCaption));
  +  ...copy from ExtTextOut below, todo
     {$else}
  -  FBitmapText.Canvas.TextOut(0, NIndentTop, TempCaption);
  +  ExtTextOut(C.Handle,
  +    RectText.Left,
  +    RectText.Top+NIndentTop,
  +    ETO_CLIPPED{+ETO_OPAQUE},
  +    @RectText,
  +    PChar(TempCaption),
  +    Length(TempCaption),
  +    nil);
     {$endif}
  -
  -  C.CopyRect(RText, FBitmapText.Canvas,
  -    Rect(0, 0, RText.Right-RText.Left, RText.Bottom-RText.Top));
   
     //borders
     if FTabBottom then
  
positive.code:     FTabMenu: TatPopupMenu;
  
      FBitmap: TBitmap;
      FBitmapText: TBitmap;
      FOnTabClick: TNotifyEvent;
      FOnTabPlusClick: TNotifyEvent;
      FOnTabClose: TATTabCloseEvent;
  
negative.code:   Forms,
    Math;
  
  function IsDoubleBufferedNeeded: boolean;
  begin
    Result:= false;
  
    {$ifdef windows}
    exit(true);
    {$endif}
  
    {$ifdef darwin}
    exit(false);
    {$endif}
  
    {$ifdef linux}
    exit(false);
    {$endif}
  end;
  
  function _FindControl(Pnt: TPoint): TControl;
  begin
    {$ifdef FPC}
  