2010-08-26 116 views
1

許多現代應用程序具有不規則形狀的形式。 Delphi中最好的方法是什麼?沒有使用任何第三方VCL可以做到這一點嗎?不規則形狀

+3

我不相信你的第一句話的要求。 – 2010-08-26 07:58:15

+0

將「Most」更改爲「Many」:) – rajeemcariazo 2010-08-26 08:17:15

+0

奇怪的是,自從Windows XP引入了主題,實際上大多數窗口都有圓角(用SetWindowRgn bij主題服務完成) – 2010-08-30 08:12:43

回答

9

yes是可能的,您必須使用SetWindowRgn函數來設置要繪製的新窗口區域。

試試這個代碼

procedure TForm1.FormCreate(Sender: TObject); 
var 
    region:HRGN; 
begin 
    region := CreateRoundRectRgn(ClientRect.left, ClientRect.top, ClientRect.right, ClientRect.bottom, 15, 15); 
    SetWindowRgn(Handle, region, true); 
end; 

alt text

檢查提綱更多信息

鏈接
+6

SetWindowRgn()是塑造windows的老派方法。在Win2000及更高版本中,UpdateLayeredWindow()和SetLayeredWindowAttributes()(由TForm.TransparentColor ...和TForm.AlphaBlend ...屬性包裝)現在是首選方法。 – 2010-08-26 21:10:52

8

您可以使用TForms的TransparentColorValue屬性。結合BorderStyle = bsNone它會給你這樣的形狀。

+0

這是否適用於Glass系統? – 2012-01-24 14:01:59

+0

如果你的意思是Aero Glass,那麼是的。 – Torbins 2012-02-06 14:59:55