如何使我的Deskband(任务栏工具栏)表单透明

时间:2011-12-27 15:50:01

标签: delphi taskbar delphi-xe2 deskband

我正在使用适用于Windows XP,Vista和7(Win32和Win64)的Delphi XE2中的Windows Deskband ...

我已经在我的代码中实现了所有必要的接口(ITrayDeskBand,IDeskBandInfo,IDeskBand2,IDeskBand),并且所有接口都完全正常(Vista / 7上没有任何警告抱怨兼容性,正如其他人所经历的那样)。

我遇到的问题是我的Deskband表格带有不透明的乐队。此外,仅显示某些控件(在这种情况下,TBitBtn和TImage包含PNG)。我需要它来正确显示TEdit和TComboBox对象,但它们根本不会出现。

我已尝试在我的表单上启用GlassFrameSheetOfGlass属性,但这没有任何帮助。

此外,表单本身超出了任务栏的顶部边界,这意味着如果光标与我的Deskband正上方的任务栏顶部一致,则不能(例如)调整任务栏的大小。

我相信德尔福的VCL TForm类型正在幕后做,这使得TForm类型与Deskband容器不兼容......但这只是一种怀疑。

以下是说明各种问题的屏幕截图:

enter image description here

正如您所见(上图),Deskband的表格是苍白的(而不是透明的),它与任务栏的顶部重叠(防止在任务栏“隐藏”时调整大小和自动隐藏)

有什么想法吗?

更新1 好吧,我一直在玩,并注意到在创建用于Deskband的TToolBar控件而不是表单时会发现完全不同的行为:

enter image description here

请注意,有三个TToolButton控件(由于Glass主题,它们的文本几乎不可见)?两个分隔符之间也应该有TEditTComboBox,但这些分隔符根本不显示。

还要注意人工制品(重复实际的任务栏图标)?

我不确定这是否是朝着正确方向迈出的一步,但它可能会帮助您(或其他人)推断出一个解决方案!

1 个答案:

答案 0 :(得分:14)

好的......我终于想出了这个,这是我遇到过的最荒谬的事情。

我在这里发布我的发现是为了别人的利益(为了避免你经历我刚刚经历过的麻烦)。

要使您的Deskband表单上的所有控件显示并正常运行,只需将表单的Visible属性(在IDE设计器中)设置为True即可

荒谬,我知道,但它很有效并且很容易重复。