gpt4 book ai didi

delphi - 鼠标移动时,单元格内的虚拟TreeView更新提示

转载 作者:行者123 更新时间:2023-12-03 18:43:48 26 4
gpt4 key购买 nike

我正在使用TVirtualStringTree作为运行良好的网格。

当用户将鼠标放在单元格上方时,我正在使用treeviews提示功能显示提示。我必须将HintMode更改为hmHint,因为无论单元格文本的长度如何,我都希望我的提示出现。

我现在想做的是根据鼠标在单元格中的位置显示不同的提示。

在使用OnGetHint事件显示提示之前,我可以做到这一点。我的问题是,仅当用户将鼠标移到另一个单元格时,才会在下次发生此事件。

在显示提示并且鼠标在同一单元格内移动时,我看不到找到更新提示的方法

我使用应用程序的OnShowHint事件查看了其他控件的建议,但它们似乎只是使提示消失而不再显示。

任何人有任何想法吗?

谢谢

更新资料

经过一番调查后,我发现了这种情况,以防有人提出解决方案:

CMHintShow方法将HintInfo记录的CursoRect字段设置为单元格的边界。这似乎阻止了VCl再次触发提示代码,直到鼠标移出此rect(TApplication.HintMouseMessage)。

如果我将CursorRect设置为小于单元格边界的值,则提示将更新。我在一些地方出于不同的目的使用了VT,因此无法直接进行这些更改。获得不需要此更改的解决方案会很好。

最佳答案

在顶部附近的TBaseVirtualTree.CMHintShow中,代码显示为:

if PtInRect(FLastHintRect, HintInfo.CursorPos) then
Exit;


如果您将其注释掉,则行为将更接近您要查找的内容。如果在同一单元格中移动鼠标,则提示窗口将不会再次显示,但是如果单击,它将显示。

如果没有单击鼠标,我似乎找不到任何方法可以使提示窗口显示在同一单元格中!

关于delphi - 鼠标移动时,单元格内的虚拟TreeView更新提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5382993/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com