请问如何为TComboBox中的每一个Item附加一个值
(注意,不是显示的Text,如果是那样,我知道可以用Add或者Append)

解决方案 »

  1.   

    比如作数据库应用程序
    在TComboBox中用每一个item显示项目的名称,需要在每一个item上附加存储项目的ID怎么实现?p.s. 楼上, 你的主意不怎么样
      

  2.   

    可能没听太明白 
    也许可以用一个数组 数组内存放附加项目的ID 主要是让数组下标和ItemIndex对应起来
      

  3.   

    items有一个Objects可以利用
    或者用二维数组
      

  4.   

    在TComboBox打主义是不可能的,我明白你的意思,我也经常这样用。我使用TStringList变量解决了这个问题:如:ID与Name对照
    var
      ID:TStringList;不过ID和Name加入的顺序要完全一致
    -------------------------------------使用ID[ComboBox1.ItemIndex]来得到当前Name对应的ID注意要判断ComboBox1.ItemIndex>-1
      

  5.   

    没辙,我一直以来都还是以这样的方法解决:ComboBox1.Items.Add('项目名称                ID:12345');使用:
    procedure TForm1.ComboBox1Change(Sender: TObject);
    var
      IDPos:Integer;
      XMMC,ID:String;
    begin
      IDPos:=Pos('ID:',ComboBox1.Text);
      XMMC:=Trim(Copy(ComboBox1.Text,1,IDPos-1));
      ID:=Copy(ComboBox1.Text,IDPos+3,5);
      ShowMessage(XMMC);
      ShowMessage(ID);
    end;
    空格数视你的需要而定,并且 style 属性不能用 csDropDown;这样才能把 ID 隐藏在后面看不见。