anchor.diff:    Result := (FForm.ClientHeight = 0);
   end; { TDLUIXVCLFloatingFrame.IsEmpty }
   
  +function TDLUIXVCLFloatingFrame.IsHistoryAnalyzer(const analyzer: IDLUIXAnalyzer):
  +  boolean;
  +begin
  +  Result := TType.GetType((analyzer as TObject).ClassType).HasCustomAttribute<TBackNavigationAttribute>;
  +end; { TDLUIXVCLFloatingFrame.IsHistoryAnalyzer }
  +
   procedure TDLUIXVCLFloatingFrame.MarkActive(isActive: boolean);
   var
     newAlphaBlend: integer;
  
positive.code:   button.Top := FForm.ClientHeight + IFF(FForm.ClientHeight = 0, 0, CButtonSpacing);
  
    if Supports(action, IDLUIXOpenAnalyzerAction, openAnalyzer) then begin
      isBack := TType.GetType((openAnalyzer.Analyzer as TObject).ClassType).HasCustomAttribute<TBackNavigationAttribute>;
      if isBack then
        button.Caption := '< ' + action.Name
      else
        button.Caption := action.Name + ' >';
    end
    else
      button.Caption := action.Name;
  
negative.code:     [Managed(false)] FActionMap: IBidiDictionary<TObject, IDLUIXAction>;
      [Managed(false)] FForm     : TVCLFloatingForm;
    var
      FEasing       : IEasing;
      FHistoryButton: TButton;
      FOnAction     : TDLUIXFrameAction;
      FParent       : IDLUIXFrame;
    strict protected
      function  BuildButton(const action: IDLUIXAction): integer;
      function  BuildList(const listNavigation: IDLUIXListNavigationAction): integer;
      procedure ForwardAction(Sender: TObject);
      function  GetOnAction: TDLUIXFrameAction;
      function  IsHistoryAnalyzer(const analyzer: IDLUIXAnalyzer): boolean;
      procedure SetOnAction(const value: TDLUIXFrameAction);
    public
      constructor Create(const parentFrame: IDLUIXFrame);
  