TCheckListBox项目的唯一提示?

Rob*_*ank 1 delphi

当用户将鼠标向下移动到TCheckListBox中的项目列表时,如何显示特定于鼠标下项目的提示?

在Delphi 2010中.

汤姆

Dav*_*nan 6

我这样做的方式是利用这个TApplication.OnShowHint事件.这允许您自定义HintStr参数,并且您可以根据HintInfo参数中包含的位置执行此操作.

正如Remy在评论中指出的那样,你也可以处理CM_HINTSHOW以达到同样的效果,如果你已经将标准VCL控件子类化,那么在某些方面可以更清晰地实现.

我已经实现了一个基于接口的框架,以便在我的应用程序中使用它.基本上在TApplication.OnShowHint,HintInfo.HintControl被问及是否支持此接口.如果是这样,那么它有机会自定义提示文本.它工作得很漂亮.

基于原始MouseMove事件的提示非常有效但在每个MouseMove事件上调用ItemAtPos似乎有点浪费,而不是等到实际显示提示的时间.这就是为什么我略微偏爱上述方法.