我正在为 Windows XP、Vista 和 7(Win32 和 Win64)开发 Delphi XE2 中的 Windows Deskband...
我已经在我的代码中实现了所有必要的接口(ITrayDeskBand、IDeskBandInfo、IDeskBand2、IDeskBand),并且一切都完全按照它应该的方式工作(Vista/7 上没有任何警告抱怨其他人经历过的兼容性)。
我遇到的问题是我的桌带表格出现了一个不透明的带子。此外,仅显示某些控件(在这种情况下,TBitBtn 和 TImage 包含 PNG)。我也需要它来正确显示 TEdit 和 TComboBox 对象,但它们根本不会出现。
我已经尝试在我的表单上启用GlassFrame
和SheetOfGlass
属性,但这一点帮助都没有。
此外,表单本身超出了任务栏的顶部边界,这意味着如果光标与我的桌带正上方的任务栏顶部对齐,则无法(例如)调整任务栏的大小。
我相信 Delphi 的 VCL TForm 类型在幕后做了一些事情,这使得 TForm 类型与 Deskband 容器不兼容......但这只是一个怀疑。
这是说明各种问题的屏幕截图:
如您所见(上图),Deskband 的表格是苍白的(而不是透明的),它与任务栏的顶部重叠(防止在任务栏“隐藏”时调整大小和自动隐藏触发)
有任何想法吗?
更新 1 好的,我一直在玩,并注意到在创建用于 Deskband 的 TToolBar 控件时观察到完全不同的行为,而不是表单:
注意有三个TToolButton
控件(由于 Glass 主题,它们的文本几乎不可见)?两个分隔符之间也应该有一个TEdit
and TComboBox
,但它们根本拒绝显示。
还注意到人工制品(实际任务栏图标的重复)吗?
我不确定这是否是朝着正确方向迈出的一步,但它可能会帮助您(或其他人)推断出解决方案!