anchor.diff:      if not treeData.InSearch then begin
         treeData.SearchTimer.Interval := 500;
         treeData.SearchTimer.Enabled := false;
  -      DoSearch(treeData, treeData.SearchBox.Text);
  +      treeData.LastSearch := Trim(treeData.SearchBox.Text);
  +      DoSearch(treeData, treeData.LastSearch);
       end
       else begin
         treeData.AbortSearch := true;
  
positive.code:     property Coordinates: ICoordinates read GetCoordinates write SetCoordinates;
      property AbortSearch: boolean read GetAbortSearch write SetAbortSearch;
      property InSearch: boolean read GetInSearch write SetInSearch;
      property SearchBox: TSearchBox read GetSearchBox;
      property SearchTimer: TTimer read GetSearchTimer;
      property VirtualTree: TVirtualStringTree read GetVirtualTree;
  
negative.code:     timer := nil;
      if assigned(listBoxData) then
        timer := listBoxData.SearchTimer;
      if assigned(treeData) and (treeData.LastSearch <> Trim((Sender as TSearchBox).Text)) then
        timer := treeData.SearchTimer;
      if assigned(timer) then begin
        timer.Enabled := false;
  