【发布时间】:2012-03-27 01:28:41
【问题描述】:
我在 Delphi 中使用了一个 TTreeview 组件,并且我自定义了拖放功能。 我开始向下拖动鼠标(因为它是一种自定义行为),但我不想在用户单击 +/- 或展开和折叠图标时开始拖动事件。
有没有办法知道用户是否点击了节点的标题或展开/折叠图标?
谢谢!
【问题讨论】:
标签: delphi treeviewitem
我在 Delphi 中使用了一个 TTreeview 组件,并且我自定义了拖放功能。 我开始向下拖动鼠标(因为它是一种自定义行为),但我不想在用户单击 +/- 或展开和折叠图标时开始拖动事件。
有没有办法知道用户是否点击了节点的标题或展开/折叠图标?
谢谢!
【问题讨论】:
标签: delphi treeviewitem
TTreeView 组件包含用于此目的的 GetHitTestInfoAt 方法。
procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
HitTests: THitTests;
begin
HitTests := TreeView1.GetHitTestInfoAt(X, Y);
if htOnButton in HitTests then
//do something
else if htOnLabel in HitTests then
//do something else
else if ......
THitTests 集合中可能的members 的完整列表是:
【讨论】: