这个函数放在公共模块,可以正常调用,但要注释//myList.Free;
那myList该怎么释放?function AddStrList(ADOQry: TADOQuery; fd, tb: string): TStringList;
var
  myList: TStringList;
  I, j: integer;
begin
  myList := TStringList.Create;
  try
    OpenQuerySort(ADOQry, fd, tb);
    j := ADOQry.RecordCount;
    for I := 0 to j - 1 do
    begin
      myList.Add(ADOQry.FieldValues[fd]);
      ADOQry.Next;
    end;
    Result := myList;
  finally
    //myList.Free;
  end;
end;

解决方案 »

  1.   

    你可以这样修改并调用你的函数:function   AddStrList(ADOQry:   TADOQuery;   fd,   tb:   string):   TStringList; 
    begin
      Result.Clear; 
      OpenQuerySort(ADOQry,   fd,   tb); 
      while not ADOQry.Eof do begin  
        Result.Add(ADOQry.FieldValues[fd]);
        ADOQry.Next;
      end;
    end; //调用
    var
      myList: TStringList;
    begin
      MyList := TStringList.Create;
      MyList := ADDStrList(ADOQry, FieldName, TableName);
      .......
      FreeAndNil(MyList);
    end;
    end;