2010-05-25 25 views
1

我正在使用Delphi 2006.我有几张使用透明胶片的PNG图像,我必须使用它们创建一个GUI(顶部栏,左侧面板...)。图像具有不同的对齐属性。其中一个图像是表单的背景。这里的问题是,我无法将其作为alClient对齐,因为它只占用其他图像留下的矩形区域,在透明区域显示裸露的画布。我需要的是将背景图像放在所有其他图像的背后,并占用所有的画布大小。图像作为Delphi中的窗体的背景

有没有办法做到这一点?我知道我可以在表单的OnResize事件中写一些逻辑,但是我只是好奇我是否错过了一些东西。

谢谢。

+0

请注意,尽管类似的主题,这不是[如何将背景图像添加到Delphi窗体](http://stackoverflow.com/questions/525970/how-to-add-background-images-to -delphi-forms)或[在Delphi中为表单设置背景图像](http://stackoverflow.com/questions/1849859/setting-up-background-images-for-forms-in-delphi)。 – 2010-05-25 22:17:40

回答

2

在窗体上放置一个TImage,并将其与“alClient”对齐。然后在窗体上放置一个“alClient”对齐的面板。启用主题并设置“ParentBackground”属性时,TPanel是透明的。然后将图像放在面板上并随意对齐。如果主题未启用非常重要,则可以使用属于JVCL库的“TJvPanel”。谷歌搜索似乎也揭示了透明面板的一些代码。

虽然上面的内容不会帮助“png”的透明度。 AFAIK PNG支持(透明度)与D2009一起添加,我不知道这种支持是否包含TImage。

编辑:实际上,它似乎有欠能将png图像加载到TImage到JVCL库本身的能力,它似乎支持TImage的透明“png”。

+0

谢谢,Sertac。你的听起来像是解决问题的好方法。我用透明PNG没有问题,因为我使用第三方组件来做到这一点。 – Averroes 2010-05-26 07:04:01