命中测试TTreview加/减(折叠/展开)图标 - 德尔福

时间:2012-03-09 15:36:14

标签: delphi treeviewitem

我在Delphi中使用TTreeview组件,我已经定制了拖放功能。 我开始拖动鼠标(因为它是自定义行为),但我不想在用户单击+/-或展开和折叠图标时启动拖动事件。

有没有办法知道用户是否点击了节点的标题或展开/折叠图标?

谢谢!

1 个答案:

答案 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 ......

members集的可能THitTests的完整列表是:

  • htAbove
  • htBelow
  • htNowhere
  • htOnItem
  • htOnButton
  • htOnIcon
  • htOnIndent
  • htOnLabel
  • htOnRight
  • htOnStateIcon
  • htToLeft
  • htToRight