【问题标题】:Delphi - Text in Tray IconDelphi - 托盘中的文本图标
【发布时间】:2018-01-13 00:00:18
【问题描述】:

我正在尝试编写一个应用程序来放置当前温度(从在线资源获取)并在系统托盘/通知的应用程序图标中显示温度(作为文本)(适用于 Windows 7+)。

我正在使用 Delphi TTrayIcon 组件,但我不知道如何在图标区域显示文本。我过去有其他应用程序可以做到这一点,所以它一定是可能的。

【问题讨论】:

  • 您无法在此处显示文本。该区域显示图标。您可以制作一个图标,在其上绘制温度,然后更新图标以显示显示温度的新图标。
  • 就像KenWhite说的你的问题不是如何在托盘图标上写文字你的问题是如何更改图标
  • 我会缩小这个问题的范围。为了满足规范,您应该提供 16x16 和 32x32 像素的图标。这是因为用户可以在您的应用程序中更改 DPI。将运行,如果您只提供 16x16,它将被缩放到更大的尺寸。如果您可以“即时”创建这样的图标而不保存到磁盘可能是您想问的问题。
  • @victoria Er,这不对。通知图标是一个小图标。所以你问系统小图标的大小是多少。并且可以肯定它可以在 16 到 32 之间。
  • @David,如果只提供一个 16x16 像素的图标,它会在设置为高 dpi 值的系统中缩放到更大的尺寸。这可能导致没有吸引力的结果。建议您在资源文件中同时提供 16x16 像素图标和 32x32 图标。使用 LoadIconMetric 确保正确加载和缩放正确的图标。 (source)。您应该渲染两种尺寸。

标签: windows delphi object pascal tray


【解决方案1】:

通知图标就是这样。图标。他们无法显示您提供给他们的文本。因此,为了实现您的目标,您需要动态创建一个包含文本的图标并将其作为通知图标提供。

请注意,通知图标是一个小图标,其大小由SM_CXSMICON 系统指标给出。

【讨论】:

  • 通知图标,即在任务栏中,可以很好的显示文字(气球提示),可以动态设置,使用Shell_NotifyIcon(NIM_MODIFY, Data);,其中DataPNotifyIconData
  • @rudy 这不是这里要讨论的内容
  • 是的,我现在明白了。他想和我笔记本电脑上的 CoreTemp 应用程序一样。他们还即时创建图标,然后显示它们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多