【问题标题】:How to show tooltip for longer time in C++ Builder?如何在 C++ Builder 中显示更长时间的工具提示?
【发布时间】:2014-10-26 09:57:12
【问题描述】:

我有一个显示到图像的工具提示

ImageIcon->Hint = "This is a long tooltip I need some more time to read it";

我想增加这个工具提示的显示时间。

拜托,有人可以帮我解决这个问题吗?

【问题讨论】:

  • 您想在您的应用程序中扩展所有提示时间,还是仅针对您的 ImageIcon 控件?
  • 有效问题,顺便提一下 (+1)

标签: c++ user-interface tooltip c++builder vcl


【解决方案1】:

您可以处理Application 对象的OnShowHint 事件。调用此事件处理程序时,更改HintInfo 参数的HideTimeout 属性。可以根据提示的长度和提示准备的控件来选择该值。我发现这种方法比增加TApplicationHintHidePause property 更合适,因为提示的长度可能会有很大差异,而且非常短的提示在显示时间过长时也会非常烦人。

作为参考,开始阅读以下文章:

【讨论】:

  • 嗨狼。 . .我使用你的答案实现了它就像一个魅力。 . .谢谢
【解决方案2】:

您可以使用HintHidePause 指定整个应用程序的等待时间(以毫秒为单位)。

例如将默认值 2500ms (2.5s) 更改为 30 秒:

Application->HintHidePause = 30000;

如果您只需要更改ImageIcon 控件的延迟,那么应该可以这样:

void __fastcall TForm1::DoShowHint(UnicodeString &HintStr, bool &CanShow, THintInfo &HintInfo)
{
  // By default, it's set to the value of the Application variable's
  // HintHidePause property
  if (HintInfo.HintControl == ImageIcon)
    HintInfo.HideTimeout = 30000;
}

【讨论】:

  • ……这次要说服阿努普可没那么容易。无论如何,感谢令人耳目一新的(间接)讨论。 ;)
  • @Wolf HintHidePause 很方便(只有一行),但你是对的......不是很灵活。
  • +1 用于复制粘贴友好版本。有时最好快点 :) 而从长远来看往往不是...
  • 现在我们只需要说服 Embarcadero 为 Watch 窗口中的提示执行此操作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-10
  • 1970-01-01
  • 1970-01-01
  • 2013-09-02
  • 2015-06-28
相关资源
最近更新 更多