treeview拖拽功能怎么实现?(象资源管理器那样)

flashwolf 2001-12-14 11:13:45
用的是1stclass的fctreeview控件,我想应该和delphi中的treeview差不多吧?但怎么样实现????
...全文
84 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
flashwolf 2001-12-17
  • 打赏
  • 举报
回复
这不是delphi的帮助么?没用啊。试过
flashwolf 2001-12-14
  • 打赏
  • 举报
回复
是Treeview任意子、父节节点之间的拖动。
ch81 2001-12-14
  • 打赏
  • 举报
回复
最简单的方法是把treeview的dmdragkind:改为automatic
然后编程主要在那个接收的控件!
比如说是memo
procedure TForm1.Memo1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
begin
Accept:=True;
end;
procedure TForm1.Memo1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
memo1.Lines.Add(TreeView.Selected.Caption);
end;
taxi 2001-12-14
  • 打赏
  • 举报
回复
搜索以前的贴子,有讲过的。
ch81 2001-12-14
  • 打赏
  • 举报
回复
很简单!你就在treeview中加上类似的代码!
实际上,道理是一样的,只是调用moveto
procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);

var
AnItem: TTreeNode;
AttachMode: TNodeAttachMode;
HT: THitTests;
begin
if TreeView1.Selected = nilthen Exit;
HT := TreeView1.GetHitTestInfoAt(X, Y);
AnItem := TreeView1.GetNodeAt(X, Y);
if (HT - [htOnItem, htOnIcon, htNowhere, htOnIndent] <> HT) then
begin
if (htOnItem in HT) or (htOnIcon in HT) then AttachMode := naAddChild
else if htNowhere in HT then AttachMode := naAdd

else if htOnIndent in HT then AttachMode := naInsert;
TreeView1.Selected.MoveTo(AnItem, AttachMode);
end;
end;

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧