我在Delphi中使用TTreeview组件,我已经定制了拖放功能。 我开始拖动鼠标(因为它是自定义行为),但我不想在用户单击+/-或展开和折叠图标时启动拖动事件。
有没有办法知道用户是否点击了节点的标题或展开/折叠图标?
谢谢!
答案 0 :(得分:5)
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 ......