【发布时间】:2013-07-03 22:18:48
【问题描述】:
我使用Application.ActivateHint(p),其中p: TPoint,在指定位置显示提示。但它总是显示在 Delphi XE2 上的实际鼠标坐标上。
请查看堆栈:
Main.ApplicationEventsShowHint('Hint String Here...',True,$18FB14)
:5049c644 TCustomApplicationEvents.DoShowHint + $20
:5049d043 TMultiCaster.DoShowHint + $4B
:50454a6b TApplication.ActivateHint + $213
RxDBCtrl.TRxDBGrid.MouseMove([],934,45)
在RxDBCtrl.TRxDBGrid.MouseMove 上,我使用正确的屏幕坐标作为参数调用TApplication.ActivateHint。但在Main.ApplicationEventsShowHint(var HintStr: string; var CanShow: Boolean; var HintInfo: THintInfo) 上,HintInfo.HintPos 的值与实际鼠标坐标相同。作为参数传递给TApplication.ActivateHint 的值丢失了。
为什么会这样?如何在 Delphi XE2 上显示所需坐标的提示?
非常感谢您的帮助!
【问题讨论】:
-
有机会获得 SSCCE 吗?
-
嗯,因为
TApplication.ActivateHint的行为是that way(后来是HintInfo变量传递给OnShowHint事件方法而不改变HintPos)? -
但是 ActivateHint 上有一个参数,其中包含显示提示的坐标。文档同意这一点。此代码也适用于 Delphi 7。不要在 Delphi XE2 上工作。
-
...以及如何在所需坐标上显示提示?
-
大卫,它可以在使用 StringGrid 而不是 RxGrid 的简单项目上正常工作...:(
标签: delphi delphi-xe2 hint