我有个记录a。a下有a1,a2 数组,将a1[i]添加到listbox同时将i添加进去。用addobject(a1[i],tobject(strnew(pchar(inttostr(i))))).a2[i]用来记录a1[i]在listbox中的位置即a2[i]:=listbox.item.count-1。删除后,a2要减1。请问如何操作。

解决方案 »

  1.   

    加的时候用addobject(a1[i],tobject(i))就可以了
      

  2.   

    我是这样做的:for i:=0 to 记录a的count-1 do 找到a1[i] .记下k:=a2[i];a2[i]:=-1因为a1[i]在listbox中要被删除;
    listbox1.items.delete(k);
    //以下是对a2[i]操作
     while k < ListBoxOnline.Items.Count do
      begin
        index := strtoint(String(Pchar(ListBox1.Items.Objects[k])));//找到i
        a2[index] := k;
        inc(k);
      end;
    可是运行到 index := strtoint(String(Pchar(ListBox1.Items.Objects[k]))); 就会错误说在在listbox中找不到相应的值。为什么。我这么写有错误吗?
      

  3.   

    listbox1.items.delete(k); 从k开始以后下标都变了,你存起来是没有删除的下标,没有用的
      

  4.   

    我知道listbox1.items.delete(k); 操作这个,a2用来记录a1在listbox中的位置也会变得。所以我进行while操作将a2改变。对3楼说的问题还是不明白。我该怎么改呢