急、急、急:怎样实现TreeView的开始拖拽?

zhuhao0306 2004-11-22 10:31:12
如果在树的MouseDown中写入:
if ( htOnItem in (sender as TTreeview).GetHitTestInfoAt( X, Y ) ) then
begin
(sender as TTreeview).BeginDrag( False );
end;
可以实现拖动,但会出现阴影,请问怎样进行处理?
...全文
118 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
surpassable 2004-11-22
  • 打赏
  • 举报
回复
帮你顶~~~~~~~~~
luckzhangs 2004-11-22
  • 打赏
  • 举报
回复
procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);

var
AnItem: TTreeNode;
AttachMode: TNodeAttachMode;
HT: THitTests;
begin
if TreeView1.Selected = nil then 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;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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