//给combobox赋值
ComboBox1.Items.AddObject('aaa', TObject(NewStr('001')));
ComboBox1.Items.AddObject('bbb', TObject(NewStr('002')));
ComboBox1.Items.AddObject('ccc', TObject(NewStr('003')));//获取当单前TObject的值 成功
str := PString(ComboBox1.Items.Objects[ComboBox1.ItemIndex])^;//根据TObject的值返回对应的itemindex  错误
itemindex:=ComboBox1.Items.IndexOfObject(TObject(NewStr('001'));

解决方案 »

  1.   

    还没有使用OBJITEM过这种方法,看程序应该是指针的问题返回是什么错误?应该是-1吧itemindex:=ComboBox1.Items.IndexOfObject(TObject(NewStr('001'));TObject(NewStr('001')已经是一个新的指针,不存在于ITEMS中
      

  2.   

    同样是这个NewStr('001'),不代表其地址也一样。你要先搞个AObject: TObject记住你存入Objects里的某个项目,再用这个AObject取试试
      

  3.   

    返回是-1,可能只有通过items.indexof('aaa')来返回了