anchor.diff:    CombineMethod: TSearchTermCombineMethod;
     lTerm: TSearchTerm;
   begin
  +  inherited Create;
     Terms := TList.Create;
     try
       RemainingSearchString := Uppercase( SearchString );
  
positive.code:       Terms.Add( lTerm );
      end;
    except
      Destroy; // clean up
      raise; // reraise exception
    end;
  end;
  
  destructor TTextSearchQuery.Destroy;
  var
    i: TSearchTerm;
  begin
    while Terms.Count > 0 do
    begin
      i := TSearchTerm(Terms.Last);
      Terms.Remove(i);
      i.Free;
    end;
  
  //  DestroyListObjects( Terms );
    Terms.Destroy;
  end;
  
  function TTextSearchQuery.GetTerm( index: longint ): TSearchTerm;
  
negative.code:   end;
  
    TTextSearchQuery = class
    private
      procedure Cleanup;
    protected
      Terms: TList;
      function GetTerm( Index: longint ): TSearchTerm;
  