【问题标题】:Forcing a non blocking temporary hint window in Delphi在 Delphi 中强制使用非阻塞临时提示窗口
【发布时间】:2014-04-04 18:31:43
【问题描述】:

我一直在寻找,但找不到解决方案,所以我想也许我应该简单地发布它。

这是我想做的事,在 Delphi (2009) 中:

在我的应用程序的某个时刻,我想向用户显示一条消息。

这应该是正常的提示窗口,在正常的应用程序定义的提示暂停后自动消失,并带有自定义消息(并自动调整大小等)。

这应该是非阻塞的,就像普通的提示一样,不依赖于当前控件或其他任何东西。

“只显示该死的消息”,在应用程序提示窗口中继续。

有什么线索吗?

【问题讨论】:

  • 如果你有 DevEx 控件,你可以看看警报管理器。
  • 尝试使用 tHintWindow:

标签: delphi delphi-2009


【解决方案1】:

您可以使用CustomHint

with TCustomHint.Create(Self) do begin
  Title := 'temporary message';
  Delay := 0;
  HideAfter := 2000;
  ShowHint(Point(X, Y));
end;

但是它不是在隐藏时被销毁,而是在其所有者(自我)被销毁时。但是您当然可以重复使用相同的提示实例。

【讨论】:

  • 刚刚尝试过,这几乎完全符合我的要求!谢谢,还不知道这门课。太好了,谢谢!
【解决方案2】:

您可以为此使用THintWindow。创建THintWindow 的实例,当你想显示窗口时调用ActivateHint。当您准备关闭窗口时,请致电ReleaseHandle。如果您想在一段时间后关闭提示窗口,您需要运行一个计时器,以便您有机会在时间到时ReleaseHandle

【讨论】:

  • 嗯,这就是重点——我不想跟踪创建的提示窗口并自己发布它们,我希望应用程序这样做,因为它具有所有功能。
  • 这是问题的一部分:在应用程序提示窗口中显示它,不必创建我自己的提示窗口,包括颜色等并跟踪提示计时器,避免来自控件等的双重提示等. 我基本上会替换 TApplication 已经在做的事情!
  • 很遗憾您必须复制该代码。特别是当应用程序提示窗口弹出时,您的新提示窗口需要消失。 :(
  • @David - 我的 XE2 测试在这里看起来像是一个标准提示窗口。无论如何,我想设置 Style := bhsStandard 应该会让你的测试看起来更标准。
  • @David - 是的。这个看起来像是对气球提示的内置支持。
猜你喜欢
  • 1970-01-01
  • 2013-02-10
  • 1970-01-01
  • 2017-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-07
相关资源
最近更新 更多