关于delphi:为弹出任务栏窗口添加功能 | 珊瑚贝

Adding functionality to popup taskbar window


不知道如何表达,但 win7/win8 允许固定到任务栏。当一个应用程序正在运行并且您将鼠标悬停时,会弹出一个窗口,显示一个微型应用程序屏幕。

使用 winamp 和 MP3 文件播放,而不是显示应用程序窗体,它会弹出带有小导航栏的窗口,以允许暂停、快进等播放。

我想对我的应用程序做类似的事情,而不是暂停任何东西,但我想用几个按钮在弹出窗口中添加一些工作功能。

我该怎么做呢?

  • 从这里开始(向后)。
  • 然后在这里查看更广泛的概述:任务栏扩展


您描述的大部分内容(包括预览窗口上的按钮)都是使用 Windows 7 及更高版本中的 ITaskbarList3 COM 接口完成的。

有一个关于在任务栏中显示进度条的问题;这两个答案目前有一些相关链接,包括一些示例和开源 Delphi 组件。请注意,使用这样的旧版本的 Delphi 实现这可能对您来说要困难得多;较新的版本在 RTL 中已经为您提供了定义和类型,这大大简化了 COM 的使用。

正如 Remy 在评论中指出的那样,XE6 包含一个新的 VCL 组件,TTaskbar(见注释),这使得添加这些按钮非常简单。您只需在表单上放置一个组件,使用 TTaskbar.TaskbarButtons 属性编辑器添加按钮,为每个按钮分配一个 TAction 和图标,然后就完成了。

注意:TTaskbar 文档链接此时没有有意义的内容,因为该组件位于新发布的 XE6(本周发布)中。我将其添加为未来读者的参考点;希望当他们看到它时,该链接将包含一些有用的详细信息。

  • 新发布的 XE6 甚至为 Win7 任务栏功能提供了新的package组件。不过,在旧的 Delphi 版本中实现它真的不是太难(我曾经在 C Builder 6 项目中不得不这样做)。
  • @Remy:感谢您的编辑。我看到它包含在 XE6 中,但还没有机会调查。我自己在 D2007 中完成了它,并且包括在 XP(当然在 EOL 之前)和 Win7 中使用相同应用程序的能力,如果它们存在的话,使用 ITaskbarList3 接口。这还不错,但 D5 已经过时了。


来源:https://www.codenong.com/23122174/

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?