【发布时间】:2016-09-28 15:36:14
【问题描述】:
由于外观原因,我正在维护的应用程序使用 DevExpress 的一个古老组件,该组件早于他们当前的网格控件(如果您感兴趣,可以使用 TdxMasterView)。我想要做的是有一个显示当前单元格文本的工具提示,但是这个组件没有暴露 OnHint 事件。
我已经能够使用 MouseMove 事件获得所需的功能,但是由于代码要求它将鼠标光标转换为单元格,然后检索内容,我认为这对于一个事件来说代码太多了如此频繁地触发(尽管它在操作中并没有感觉太迟钝)。
组件本身派生自TCustomControl,因此具有基本的Hint 和ShowHint 属性,但是我想我想要的是能够公开或添加仅在提示时触发的事件将显示气泡(即 OnHint 事件或等效事件)。获得正确文本所需的只是鼠标的 X 和 Y 坐标。这似乎与TControlAction 相关联,但是我不完全确定它是如何工作的,因为乍一看代码并不能立即清楚地看到它,并且它没有被组件公开。
有没有人有任何示例代码,他们已经实现了类似的东西?我可以访问底层源代码,因此可以根据需要对其进行一些修改(DevExpress 永远不会发布对此代码的更新,因此这样做的正常风险并不真正适用),但我更喜欢通过辅助函数工作, windows 消息或某种装饰器(如果可能)。
我想另一种选择是有一个计时器来启用/禁用事件,但这似乎有点糟糕(如果简单的话)。
【问题讨论】:
-
Devex 对此有何看法 - 他们是显而易见的人?
-
通常我会同意,但是这个组件太旧了,以至于它超出了他们最早支持的版本。我只知道他们的 cxGrid 组件,但这要早于那个。
标签: delphi delphi-xe2