2010-01-13 75 views
0

有時我想要L形,T形,三角形,多邊形...尋找非矩形面板VCL組件

請免費重複使用的組件。 。 。

+0

如今,我們可以在http://softwarerecs.stackexchange.com/ – Mawg 2017-03-21 09:11:16

回答

4

這似乎是太遲了,但我知道Angus's site(「繪圖對象」)上有一個免費的。 (我誤解了你需要的東西就像你的問題中的非recutanglular 形式TRzShapeForm)。

對不起。

angus's Drawing Objects http://angusj.com/delphi/drawobj3.png

+1

我注意到他從他的網站中刪除了這個組件。 (這個答案可能是增加請求或問題..)。您可以從互聯網存檔下載此組件(至少現在2013年3月13日)。http://wayback.archive.org/web/20100926090549/http://angusj.com/delphi/ – benok 2013-03-13 08:55:20

4

這裏有很多可能性,其中之一是實現您自己的組件,從TPanel派生並使用區域來指定面板的區域,這可以通過調用Windows API函數來完成CreatePolygonRgn。您可能必須手動重新對齊子控件。

如果不需要面板包含任何子控件,則應考慮使用形狀對象(TShape),而不是使用形狀對象,也可以使用現有構件的組合,或者創建自己的構件。

另一種選擇是使用常規面板,並在其上繪製形狀作爲背景。最簡單的方法可能是實現您自己的TPanel類並處理繪製代碼。這不會形成面板,但可以模擬它的視覺特徵。如果您需要子組件,則可能需要覆蓋Realign函數以確保子組件保留在異形面板邊界內。

另外,你必須嘗試在互聯網上尋找你的運氣找到第三方組件,實現這一點,我做了一個快速搜索,但沒有發現任何面板可以做到這一點,雖然我必須承認我的搜索不是很徹底,你可能比我有更好的運氣。

+0

問這樣的問題是,湯米,我知道,我可以把自己的代碼。我甚至知道如何;但我也知道這樣做會對後面的人產生痛苦 - 這就是爲什麼我希望有一個免費的組件,這可以幫助我重新發明太多的輪子。 (順便說一句,那麼面板確實需要支持子控件;它需要支持TPanel所做的一切*我需要一個子類) 而且,我確實知道如何使用谷歌。我在這裏是因爲像你一樣,我沒有發現任何東西(經過嚴格的篩選) – Mawg 2010-01-13 02:59:05

+2

mawg - 也許你應該在你的問題中說明你正在尋找一個現有的免費可重用組件 – Seth 2010-01-13 23:43:34