anchor.diff:    FTimer := ATimer;
   end; { TDLUIXVCLTreeStorage.Create }
   
  +function TDLUIXVCLTreeStorage.GetAbortSearch: boolean;
  +begin
  +  Result := FAbortSearch;
  +end; { TDLUIXVCLTreeStorage.GetAbortSearch }
  +
   function TDLUIXVCLTreeStorage.GetCoordinates: ICoordinates;
   begin
     Result := FCoordinates;
   end; { TDLUIXVCLTreeStorage.GetCoordinates }
   
  +function TDLUIXVCLTreeStorage.GetInSearch: boolean;
  +begin
  +  Result := FInSearch;
  +end; { TDLUIXVCLTreeStorage.GetInSearch }
  +
   function TDLUIXVCLTreeStorage.GetSearchBox: TSearchBox;
   begin
     Result := FSearchBox;
  
positive.code:   if FListMap.TryGetValue(Sender as TComponent, listBoxData) then
      FilterListBox(listBoxData.SearchBox)
    else if FTreeMap.TryGetValue(TComponent(Sender), treeData) then
      DoSearch(treeData, treeData.SearchBox.Text);
  end; { TDLUIXVCLFloatingFrame.HandleSearchBoxTimer }
  
  procedure TDLUIXVCLFloatingFrame.HandleVTFocusChanged(Sender: TBaseVirtualTree;
  
negative.code:   vt.Left := searchBox.Left;
    vt.Top := searchBox.BoundsRect.Bottom + CSearchToListBoxSeparator;
    vt.OnFocusChanged := HandleVTFocusChanged;
    vt.OnInitNode := InitSearchNode;
    vt.OnInitChildren := InitSearchNodeChildren;
    vt.OnGetText := GetSearchNodeText;
  
    searchTimer := TTimer.Create(FForm);
    searchTimer.Enabled := false;
  