如何在Delphi中显示Vista风格的气球提示?

Att*_*asz 8 delphi winapi

在输入验证时,我使用气球提示而不是消息框.我的问题是,在Vista上,它们具有圆角的旧XP风格,而不是更新的更像矩形的外观.

我尝试使用CreateWindowEx创建它们,tooltips_class32或者使用SendMessageW显示Edit的关联balloontip EM_SHOWBALLOONTIP,结果是一样的.在Visual Studio和C#中执行相同的操作会产生Vista样式的气球提示.

当您在密码编辑中切换Caps Lock时,您可以看到我需要的气球提示示例,就像Windows登录时的那样.

Rod*_*ddy 16

如果您正在使用Delphi 2009,那么添加气球提示相当简单,尽管文档很差.(惊喜,惊喜)

  • 在表单上删除TBalloonHint
  • 如果需要,删除TImageList以包含图标.
  • 将TIMageList链接到TBalloonHint
  • 将窗体的CustomHint属性设置为TBalloonHint
  • 确保为控件设置ShowHint和ParentCustomHint为true.

下一点非常不明显:

  • 将控件的"提示"属性设置为"标题|提示| ImageIndex"

你完成了.这看起来不像100%vista,可能是由于字体选择.但它非常接近.

德尔福2009
(来源:codegear.com) ,


Too*_*the 3

正如可以在Delphi 2009 审阅者指南中读到的那样,每个 VCL 组件现在都有一个 CustomHint 属性。它可以设置为 TCustomHint 的任何后代。

请务必在 Vista 中启用气球提示,否则它们将不会显示。