请问怎样在ListView中通过拖动交换Item的顺序?
解决方案 »
- 求助:delphi 通过下载一个文件(jpg,mp3), 获取当前下载速度(xxx kb/s)
- 如何将数据库连接封装起来,避免获取程序源代码后就可以获取数据库密码?
- 关于Delphi控件在Access中的表达
- 一张病历单怎么写成表比较好??
- Move的问题
- 求助:用adoquery把泰文字符串插入数据库为什么都是问号?
- 请问谁有比较好的ktv点歌系统源码,给我一份好不?
- 我快急死了,做了几天,还是没结果。MSCOMM的读写有什么问题。
- 我想问一下,这个程序怎样实现?
- DLL访问Webservice被拒绝
- 在使用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----------------
沉沦中..........