2009-11-29 41 views
2

我最近將源代碼下載到了一個「開源」項目,該項目不幸依賴於一些昂貴的專有庫,包括Infopower 1stClass,它似乎主要用於TfcShapeButton,它是一個像標準TBitBtn一樣的組件,除了你可以通過描述點列表給它一個任意的多邊形形狀。 DFM的代碼如下所示:有沒有可用的自由形狀的按鈕組件?

 PointList.Strings = (
     '8,29' 
     '18,19' 
     '28,29' 
     '20,37' 
     '16,37') 

我試圖清理這個項目中起來,使它看起來像一個真正的開源項目,任何人都可以下載和構建,而不必掏出幾百美元的組件圖書館,但我想盡可能少地改變外觀和感覺。那麼有沒有人知道像D2009這樣的開源形狀按鈕組件?

回答

2

這段代碼完全符合你的需求。

const Points: array [1..5] of tPoint = (
    (x:8;y:29), 
    (x:18;y:19), 
    (x:28;y:29), 
    (x:20;y:37), 
    (x:16;y:37)); 

begin 
    SetWindowRgn(Button2.Handle, CreatePolygonRgn(Points, 5, WINDING), True); 
end; 
+0

哦,是這麼簡單嗎?有了這個,我可以建立自己的形狀按鈕控制。謝謝! –

2

梅森,製作成形按鈕的更好方法是爲它設置一個遮罩。 這樣做的組件應該在這裏:http://www.delphi-jedi.org/

+0

哦,JVCL中有一個成形的按鈕組件?涼! –

+0

您可以使用CreatePolygonRgn自己創建遮罩 –