anchor.diff:  
   function IsDoubleBufferedNeeded: boolean;
   begin
  +  Result:= false;
  +
     {$ifdef windows}
     exit(true);
     {$endif}
  +
     {$ifdef darwin}
     exit(false);
     {$endif}
  +
     {$ifdef linux}
     exit(false);
     {$endif}
  
positive.code:   AAlign: TATStatusAlign; const ACaption: string);
  var
    RText: TRect;
    NSize, NOffset, NOffsetTop: Integer;
  begin
    C.Brush.Color:= Color;
    C.FillRect(ARect);
  
negative.code:   RText:= Rect(ARect.Left+FIndentLeft, ARect.Top, ARect.Right-FIndentLeft, ARect.Bottom);
    C.FillRect(RText);
  
    case AAlign of
      saLeft:
        NOffsetLeft:= 0;
      saRight:
        NOffsetLeft:= (ARect.Right-ARect.Left) - C.TextWidth(ACaption)- FIndentLeft*2;
      else
        NOffsetLeft:= (ARect.Right-ARect.Left) div 2 - C.TextWidth(ACaption) div 2 - FIndentLeft;
    end;
    NOffsetTop:= (ClientHeight - C.TextHeight(ACaption)) div 2;
  
    C.Font.Assign(Self.Font);
    ExtTextOut(C.Handle,
      ARect.Left+NOffsetLeft+2,
      ARect.Top+NOffsetTop,
      ETO_CLIPPED+ETO_OPAQUE,
      @ARect,
      PChar(ACaption),
      Length(ACaption),
      nil);
  
    if FColorBorderR<>clNone then
    begin
  