PCBInfo_Struct=^CBInfo_Struct;
  CBInfo_Struct=record
    NO:string;
  end;
------------------------
var
P_Struct:PCBInfo_Struct;
for Row:=0 to 10 do
    begin
      new(P_Struct);
      P_Struct.No:=inttostr(ROW)
      ComboBox1.Items.AddObject(inttostr(Row),Tobject(P_Struct));
    end;---------------------------
new(P_Struct);
    P_Struct.No:='5';
   showmessage(inttostr(ComboBox1.Items.IndexOfObject(Tobject(P_Struct))));
它显示的总是-1
我要的是得到它的ItemIndex
如应该为5

解决方案 »

  1.   

    IndexOfObject比较的是指针,又不是对象内容.
    你另NEW的一个对象当然在ITEMS中是找不到的.
    顺便说一句:以后不要用这种方式发贴,没人愿意看这种标题的贴子.
    标题就明确简述问题.
      

  2.   

    你没有明白Combox的IndexOf的意思啊。
    IndexOf的意思是在Items中找到那个对象的序号。
    你在添加的时候把对象都加到Items中了。然后找的时候自然要去Itms中找那个对象。你新生成了一个对象,这个对象和Itmes中的对象不是同一个。就是说你生成了N个button,并保存到Items中。然后你又生成了一个Button,然后去Items中找这个新的button,怎么可能找的到!