if (ads.DataSet.Fields.FieldByNumber(i).DataType in [ftstring,ftinteger,ftdatatime,ftsmallint]) then
     items.Add(ads.DataSet.FieldDefs);
一运行就出错:
[Error] ComboBoxHt.pas(53): Incompatible types: 'String' and 'TFieldDefs'
[Error] ComboBoxHt.pas(53): Incompatible types: 'String' and 'TFieldDefs'

解决方案 »

  1.   

    类型不对,items要的是String,而你的是TFieldDefs
      

  2.   

    if Table1.FieldDefs.Count > 0
        Table1.FieldDefs[0].Name ;
      

  3.   

    items.addobject('string',fielddefs);

    items.add(ads.dataset.fielddefs.string);
      

  4.   

    items是TStrings类的实例,它的方法Add需要的是字符串,而你的是TFieldDefs,所以导致类型不匹配。正确写法如下:if (ads.DataSet.Fields.FieldByNumber(i).DataType in [ftstring,ftinteger,ftdatatime,ftsmallint]) then
         //如果是字段名称,则如下写法//
         items.Add(ads.DataSet.Fields[i].FieldName);
         //如果是字段值,则如下写法//
         items.Add(ads.DataSet.Fields[i].AsString);