listbox.Sorted :=True; 不能排列大于10的数.如 :你输入 1,3,2,6,5,.可以排序成1,2,3,5,6.但是.!!如果你输入 :12,6,54,8,44,就会排序成这样 :12,44,54,6,88.
  而我想实现的功能是,用一个edt.text随便输入几个数(这时候listbox.sorted :=false),然后点一个btn->listbox.Sorted :=True;就不可以实现了.什么样才可以随便输入后排列呢?(问题1)
还有我想把listbox1里面的数字全部移动到listbox2 中,但是我用 listbox2.items.add(listbox1.items.text);什么结果是成横线的排列呢.在listbox1里面本来是竖排列的.(为什么?这里什么实现)(问题2)

解决方案 »

  1.   

    因为默认的排序是按照字符串排的 而不是按照数字
    这个就得自己来实现排序了  var   i,j:integer;   
              temp:string;   
      begin   
          with   ListBox1   do   
              begin   
                  for   i:=0   to   Count-1   do   
                    for   j:=i   to   Count-1   do   
                      if   StrToInt(Items[i])>StrToInt(Items[j])   then   
                        begin   
                            temp:=Items[i];   
                            Items[i]:=Items[j];   
                            Items[j]:=temp;   
                        end;   
              end;   
      end;   
      

  2.   

    listbox2.items.Assigned(listbox1.items);