请问怎样在ListView中通过拖动交换Item的顺序?
解决方案 »
- Delphi 2009 泛型,如何进行类型转换?
- 我一个下午都没搞定的DBLookupcombobox,求救!!
- Delphi7中FTP、POP3、SMTP这些控件在哪里?
- 如何用delphi程序实现,将EXCEL导入ACCESS数据库
- 如果我的表中没有设主建,也没索引,请问用locate可以精确定位吗?
- quickreport如何自动生成相同的列
- 做安装程序时应该如何处理BDE,让没有安装Delphi的计算机能运行用Delphi做的程序?
- treeview的问题,item和image
- 我的问题请大家帮忙!谢谢
- delphi调用HttpQueryInfo编译不通过
- 在使用DBGridEh时如何实现点计列标题实现自动排序,急急急!!!
- c与delphi调用问题!
procedure TForm1.ListView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
tmp1:=listview1.GetItemAt(x,y);
end;procedure TForm1.ListView1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
s:string;
begin
tmp:=listview1.GetItemAt(x,y);
s:=tmp.Caption;
tmp.Caption :=tmp1.Caption ;
tmp1.Caption:=s ;
end;
到于如何交换就这样做吧..
Var
tmpItem: TListItem;
Begin
tmpItem:= ListView.Items.Item[0];
ListView.Items.Item[0].assign(ListView.Items.Item[1]);
ListView.Items.Item[1].Assign(tmpItem);
End;
(*//
标题:移动树节点说明:上、下、左、右移动设计:Zswang日期:2002-06-08支持:[email protected]//*)///////Begin Sourcefunction TreeNodeMove(mTreeNode: TTreeNode; mAnchorKind: TAnchorKind;mIsTry: Boolean = False): Boolean;varvTreeNode: TTreeNode;beginResult := Assigned(mTreeNode);if not Result then Exit;case mAnchorKind ofakTop: beginvTreeNode := mTreeNode.GetPrev;while Assigned(vTreeNode) do beginif vTreeNode = mTreeNode.GetPrevSibling then beginif not mIsTry then mTreeNode.MoveTo(vTreeNode, naInsert);Exit;end else if (vTreeNode.Level = mTreeNode.Level) then beginif not mIsTry then mTreeNode.MoveTo(vTreeNode, naAdd);Exit;end else if (vTreeNode <> mTreeNode.Parent) and(vTreeNode.Level + 1 = mTreeNode.Level) then beginif not mIsTry then mTreeNode.MoveTo(vTreeNode, naAddChild);Exit;end;vTreeNode := vTreeNode.GetPrev;end;end;akBottom: beginvTreeNode := mTreeNode.GetNext;while Assigned(vTreeNode) do beginif vTreeNode = mTreeNode.GetNextSibling then beginif not mIsTry then vTreeNode.MoveTo(mTreeNode, naInsert);Exit;end else if (vTreeNode.Level = mTreeNode.Level) then beginif not mIsTry then mTreeNode.MoveTo(vTreeNode, naAddFirst);Exit;end else if vTreeNode.Level + 1 = mTreeNode.Level then beginif not mIsTry then mTreeNode.MoveTo(vTreeNode, naAddChildFirst);Exit;end;vTreeNode := vTreeNode.GetNext;end;end;akLeft: beginvTreeNode := mTreeNode.Parent;if Assigned(vTreeNode) then beginif not mIsTry then mTreeNode.MoveTo(vTreeNode, naInsert);Exit;end;end;akRight: beginvTreeNode := mTreeNode.GetNextSibling;if Assigned(vTreeNode) then beginif not mIsTry then mTreeNode.MoveTo(vTreeNode, naAddChildFirst);Exit;end;end;end;Result := False;end; { TreeNodeMove }///////End Source///////Begin Demoprocedure TForm1.TreeView1KeyDown(Sender: TObject; var Key: Word;Shift: TShiftState);beginif not (ssCtrl in Shift) then Exit;case Key ofVK_UP: TreeNodeMove(TTreeView(Sender).Selected, akTop);VK_DOWN: TreeNodeMove(TTreeView(Sender).Selected, akBottom);VK_LEFT: TreeNodeMove(TTreeView(Sender).Selected, akLeft);VK_RIGHT: TreeNodeMove(TTreeView(Sender).Selected, akRight);end;end;procedure TForm1.TreeView1GetSelectedIndex(Sender: TObject;Node: TTreeNode);beginCheckBox1.Checked := TreeNodeMove(TTreeView(Sender).Selected, akTop, True);CheckBox2.Checked := TreeNodeMove(TTreeView(Sender).Selected, akBottom, True);CheckBox3.Checked := TreeNodeMove(TTreeView(Sender).Selected, akLeft, True);CheckBox4.Checked := TreeNodeMove(TTreeView(Sender).Selected, akRight, True);end;///////End Demo----------------
沉沦中..........