【发布时间】:2020-04-10 23:04:06
【问题描述】:
在 Delphi 10.3.3 Windows VCL 应用程序中,在 TApplicationEvents 组件的 OnHint 事件处理程序中,我在状态栏中显示当前提示:
procedure TForm1.ApplicationEvents1Hint(Sender: TObject);
begin
statMain.SimpleText := Application.Hint;
end;
但是,我想添加一些包含特定运行时数据的特定文本,具体取决于哪个控件发送提示。
很遗憾,Sender 参数没有提供该信息。
那么如何检测是哪个控件发送了提示?
【问题讨论】:
-
巧妙!最简单的往往是最好的解决方案!
-
@RemyLebeau:我知道
OnShowHint及其HintInfo.HintControl。我没有提到它的原因是因为它似乎只有在控件将ShowHint设置为True时才会触发(我从来没有,因为我希望我的提示出现在状态栏中,而不是黄色弹出窗口),并且它以通常的弹出提示延迟触发(我想要立即提示)。OnHint事件没有这些“缺点”。因此,我寻找替代解决方案。我现在意识到我仍然可以使用OnShowHint抑制提示弹出窗口,并使用Application.HintPause消除延迟。 -
也许,在
OnHint之外使用OnShowHint会使事情变得不必要地复杂?
标签: delphi delphi-10.3-rio hints