2010-01-13 51 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