tem:stringtem:='aaaa';
ComboBox1.AddItem(ADOQuery.FieldByName('指标体系名称').AsString ,TObject(tmp));
showmessage(string(ComboBox1.Items.Objects[ComboBox1.ItemIndex ]));
这样能取到值如果tem:=ADOQuery.FieldByName('f_n').AsString;(数据库有值,数据库为db2)
ComboBox1.AddItem(ADOQuery.FieldByName('指标体系名称').AsString ,TObject(tmp));
showmessage(string(ComboBox1.Items.Objects[ComboBox1.ItemIndex ]));
这样能取不到值。
怎样解决?

解决方案 »

  1.   

    ComboBox1.AddItem(ADOQuery.FieldByName('指标体系名称').AsString ,TObject(tmp));
    错了,应该使用ComboBox1.AddObject(ADOQuery.FieldByName('指标体系名称').AsString ,TObject(tmp));
      

  2.   

    ComboBox1.Items.AddObject(drive,image1.Picture.Graphic);
      

  3.   

    TObject(tmp),你的这个问题,可能会有问题,我猜测的。
      

  4.   

    ComboBox1.AddItem(ADOQuery.FieldByName('指标体系名称').AsString ,TObject(tmp));
    //TObject(tmp)有问题TObject(tmp)只是把tmp的地址存到ComboBox1中
      

  5.   

    在ComboBox1.AddItem之前进行一下操作试验一下,如
    tem:=LeftStr(ADOQuery.FieldByName('f_n').AsString+ '1', Length(ADOQuery.FieldByName('f_n').AsString))来保证tem分配了空间