我在Delphi中使用TTreeview组件,并且自定义了拖放功能。
我开始向下拖动鼠标(因为这是自定义行为),但是当用户单击+/-或展开和折叠图标时,我不想启动拖动事件。
有没有办法知道用户是否单击了节点的标题或展开/折叠图标?
谢谢!
最佳答案
为此,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
的完整列表为:ht以上
ht以下
ht无处
htOnItem
htOnButton
htOnIcon
htOnIndent
htOnLabel
htOnRight
htOnStateIcon
htToLeft
htToRight
关于delphi - 点击测试TTreview加/减(折叠/展开)图标-Delphi,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9636728/