Delphi 气球提示中的组件

Delphi 气球提示中的组件,delphi,button,components,balloon,Delphi,Button,Components,Balloon,我正在试图找到一种在TTrayIcon气球提示中添加TButton的方法 可能吗 应用程序描述和目标: 基本上,我的软件会检测USB设备何时连接到计算机 并自动弹出一个气球提示,通知用户 已连接新设备 接下来应该做的是询问用户“您想执行操作A还是操作B?”, 我想让用户快速访问气球提示中的选项 我尝试过的: 谷歌搜索了很多,但没有成功,因为没有关于如何以任何方式访问气球提示界面的信息 我在Windows 8上使用Delphi XE2。TTrayIcon是的包装,它不支持弹出通知中的自定义控件 您

我正在试图找到一种在TTrayIcon气球提示中添加TButton的方法

可能吗

应用程序描述和目标:

基本上,我的软件会检测USB设备何时连接到计算机 并自动弹出一个气球提示,通知用户 已连接新设备

接下来应该做的是询问用户“您想执行操作A还是操作B?”, 我想让用户快速访问气球提示中的选项

我尝试过的:

谷歌搜索了很多,但没有成功,因为没有关于如何以任何方式访问气球提示界面的信息


我在Windows 8上使用Delphi XE2。

TTrayIcon
是的包装,它不支持弹出通知中的自定义控件


您必须创建自己的弹出窗口。如果要相对于托盘图标定位,可以使用。请注意,系统托盘图标可能会被用户隐藏,因此请做好准备,您可能需要在不知道图标所在位置的情况下定位弹出窗口。

TTrayIcon
是的包装,它不支持弹出通知中的自定义控件


您必须创建自己的弹出窗口。如果要相对于托盘图标定位,可以使用。请注意,系统托盘图标可能会被用户隐藏,因此请做好准备,您可能需要在不知道图标所在位置的情况下定位弹出窗口。

制作自己的气泡窗口可能更容易。@Jerrydoge如果是这样,我如何正确复制Windows气泡窗口?另外,如何检索托盘图标的位置,以便正确对齐自定义气球窗口?或者我应该让我的自定义气球窗口在右下角以固定位置弹出吗?你有什么建议?你一定要在图标的位置打开它,因为用户可能会将任务栏移动到屏幕的另一个部分。至于复制原作,这取决于你的设计。除了UI标准化之外,不一定需要遵循标准气球提示。只是因为类似的原因,很多程序都倾向于自己开发。据我所知,baloon提示不支持在默认情况下添加自定义组件。所以你要么做一些窗口黑客,要么自己实现baloon提示。但是,为什么不让自己的生活变得更轻松一点,而不是试图找出如何实现这一点,只需在用户单击baloon提示后向用户显示一个新窗口,其中包含可能的选择。是的,这将意味着用户将不得不多点击一次,但这将大大简化您的工作。我建议提示并不意味着通过按钮提供交互式用户界面。我会找到一种更适合系统的设计。制作自己的气球窗口可能更容易。@Jerrydoge如果是这样,我如何正确复制Windows气球窗口?另外,如何检索托盘图标的位置,以便正确对齐自定义气球窗口?或者我应该让我的自定义气球窗口在右下角以固定位置弹出吗?你有什么建议?你一定要在图标的位置打开它,因为用户可能会将任务栏移动到屏幕的另一个部分。至于复制原作,这取决于你的设计。除了UI标准化之外,不一定需要遵循标准气球提示。只是因为类似的原因,很多程序都倾向于自己开发。据我所知,baloon提示不支持在默认情况下添加自定义组件。所以你要么做一些窗口黑客,要么自己实现baloon提示。但是,为什么不让自己的生活变得更轻松一点,而不是试图找出如何实现这一点,只需在用户单击baloon提示后向用户显示一个新窗口,其中包含可能的选择。是的,这将意味着用户将不得不多点击一次,但这将大大简化您的工作。我建议提示并不意味着通过按钮提供交互式用户界面。我会找到一种更适合系统的设计。谢谢,但它没有说明如何在托盘图标区域内获取我的软件的托盘图标位置。@AidVllasaliu:这正是
Shell\u NotifyIconGetRect()
所做的。您为它提供所需托盘图标的HWND/ID,并为您提供图标的当前屏幕坐标。然后,您可以根据需要相对于这些坐标定位窗口。谢谢。我会使用它。谢谢,但它没有说明如何在托盘图标区域内获取我的软件的托盘图标位置。@AidVllasaliu:这正是
Shell\u notifyiconterect()
所做的。您为它提供所需托盘图标的HWND/ID,并为您提供图标的当前屏幕坐标。然后,你可以根据需要将你的窗口相对于这些坐标进行定位。谢谢。我会用它的。