普通根据值显示用:
ComboBox1.ItemIndex := ComboBox1.Items.IndexOf('北京');但是我这个ComboBox1有隐藏值ID的,我想根据ID显示默认值,因为显示值有可能会重复.
根据对象构建
ComboBox1.Items.AddObject('kk',commonBean);那这样怎么根据ID显示默认值呢? 
ComboBox1.ItemIndex:=ComboBox1.Items.IndexOfObject(......);

解决方案 »

  1.   

    你可以使用lst.add(name=value)的形式
      

  2.   

    ComboBox1.Items.AddObject('kk',commonBean);
    ID在哪?是commonBean的一个属性吗?
    那这样你还是不好根据ID来确定要显示的默认值
    因为这样就要先根据ID来确定commonBean,再由commonBean来确定序号。
    不如加一个TStrings对象,在创建
    ComboBox1.Items.AddObject('kk',commonBean);
    的同时,把ID值保存到TStrings对象当然ComboBox有Value和Name属性,但显示时都会显示出来。
      

  3.   


    因为我怕Value有一样的,这样保存的时候 ID就变了
    001  北京   123
    002  北京   124这样Value北京 是一样的 但是ID,123不用
      

  4.   

    ComboBox1.ItemIndex:=ComboBox1.Items.IndexOfObject(......);做不到吗???
    本来就可以直接这样,楼主做的时候有报错还是??
      

  5.   

    自己做一个或用第三方控件有Items和values可以绑定两个字段
    调用可以用
    ComboBox1.ItemIndex:=ComboBox1.Items.IndexOf(...);
    ComboBox1.ItemIndex:=ComboBox1.Values.IndexOf(...);