TcomboBox的items属性的类型是TStrings类型
但是TStrings是抽象类,只能使用他的派生类
现在定义一个变量 AStringList 属于TStrings的派生类TStringList
问题是:能不能把这个变量AStringList 整体赋值给 TcomboBox的items属性 而不需要一个一个的Additem
谢谢!

解决方案 »

  1.   

    我试过了不行 报错 (不能将TStringList 赋给 TBomboStrings,大概就是这个意思)
    无论是直接赋值 还是用Assign都不行,
    1楼大哥能否贴个代码,让我学习下!
      

  2.   

    AddStrings()的参数也是个TStrings类型的啊
      

  3.   

    给你一个例子function GetItemsList:TStrings;//返回类型为TStrings
    begin
      Result := TStringList.Create; //用子类去实现它
      Result.Add('1');
      Result.Add('2');
      Result.Add('3');
    end;ComboBox1.Items:=GetItemsList;
      

  4.   

    ComboBox1.Items.AddStrings(Tstrings(Tmystringlist)); 
      

  5.   

    我找到 方法了
    AComboBox.Items.CommaText := AStringList.CommaText;
    只要这一行就搞定了,o(∩_∩)o...哈哈!
      

  6.   

    TStringList 是TStrings的子类,当然也可以当成 TString 使用了.完全没有必要 TStrings(AStringList) 进行强制转换.
    AComboBox.Items.CommaText := AStringList.CommaText; 
    这样的效率比较差
      

  7.   

    var
      AStringListr:TStringList;
    begin
    AStringListr:=TStringList.Create ;
    AStringListr.Add('a');
    AStringListr.Add('b');
    AStringListr.Add('c');
    ComboBox1.Items.Assign(AStringListr);FreeAndNil(AStringListr);可以这样的
      

  8.   

    使用AComboBox.Items.CommaText时,直接赋值为以逗号隔开的字符串即可。比如:
    AComboBox.Items.CommaText := 'A,B,C,D';
      

  9.   

    谢谢 我也是这么干的,但高手说这个效率不高.
    用这个ComboBox1.Items.Assign();