Delphi 原因';提示';移动项目时在listview上重新刷新的步骤

Delphi 原因';提示';移动项目时在listview上重新刷新的步骤,delphi,listview,tooltip,delphi-2007,tlistview,Delphi,Listview,Tooltip,Delphi 2007,Tlistview,当然,我以前见过这样做,但我现在找不到任何例子 我有一个TListView,设置为“报告”视图样式。它有大约六个子项,我们想做的一件事是让listview上的“提示”(工具提示)动态显示另一个数据字段。也就是说,每次将鼠标移动到任何给定行上时,“提示”都会显示与该特定行相关的一些文本 我已经做到了一半——我可以使用OnInfo方法来实现这一点,但不幸的是,一旦出现提示,Windows似乎决定我不需要再次看到listview的提示,直到我将鼠标从listview移开,然后再次“移过”它。简单地将鼠

当然,我以前见过这样做,但我现在找不到任何例子

我有一个TListView,设置为“报告”视图样式。它有大约六个子项,我们想做的一件事是让listview上的“提示”(工具提示)动态显示另一个数据字段。也就是说,每次将鼠标移动到任何给定行上时,“提示”都会显示与该特定行相关的一些文本

我已经做到了一半——我可以使用OnInfo方法来实现这一点,但不幸的是,一旦出现提示,Windows似乎决定我不需要再次看到listview的提示,直到我将鼠标从listview移开,然后再次“移过”它。简单地将鼠标移动到下一行,一直将鼠标放在控件上,并不能说服程序显示新的提示

只是想澄清一下——我已经让OnInfo提示工作,以便程序显示与我第一次将鼠标移到上面的项目相关的正确提示。更改提示文本不是问题所在。问题在于,将鼠标移动到listview中的另一项不会导致软件显示新提示。(希望这是有道理的)


有没有合适的方法让这种行为发挥作用,或者我最终会用鼠标盖做一些讨厌的事情,然后手动绘制一个hintbox(等)?

Offtopic:这在组件中很简单,它是内置功能。

检查以下链接:

编辑:


我刚刚在delphi7上检查了它,在listview上移动鼠标后,它会动态显示每一行的提示。

我使用的是OnInfo提示事件(我不需要子项的提示)。提示是“闪烁”(显示/隐藏/显示/隐藏/显示/隐藏/显示/隐藏)。发现listview的显示提示为false。将它设置为True,它就会正常工作。

非常感谢Wael,-我自己刚刚查看了代码。我不需要它在每个子项的基础上更改提示,但是那里的代码给了我一个指向“Application.ActivateHint”的指针,这正是我所需要的。我暂时不回答这个问题,以防出现更优雅的方式,但现在鼠标悬停、OnInfo提示和application.activatehint似乎可以解决这个问题。:-)谢谢我知道(也很喜欢)虚拟Treeview,但在这种特殊情况下,它是一个长期存在的、根深蒂固的遗留代码。在某些方面,最好将其移动到DevExpress网格(或类似网格)。