我想在ListBox里实现下面的功能,但却不知道怎么实现
点住listbox里的某一个item,把他拖到相应的位置,就和dbgrid中的ColumnEditor一样,可以通过
拖动的方式来确定字段的顺序.我找了listbox的属性,好像不能实现.也不太清楚代码应该怎么写!希望高手能给予指点!
非常谢谢!

解决方案 »

  1.   

    ListBox1.DragMode := dmAutomatic;procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
    var
      n:Integer;
    begin
      if Sender=Source then
      with (Sender as TListBox) do
      begin
        n := ItemAtPos(Point(X,Y),true);
        if n>=0 then
          Items.Exchange(ItemIndex,n);
      end;
    end;procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    begin
      Accept := true;
    end;
      

  2.   

    Items.Exchange(ItemIndex,n); 改变不了里面的Data信息... 如果有Data需要自己再出来复制数据.