2010-05-25 26 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