有时我想要L形,T形,三角形,多边形......
请使用免费的可重复使用的组件。 。
答案 0 :(得分:4)
这里有很多可能性,其中一个是实现你自己的组件,派生自TPanel
并使用a区域来指定面板的区域,这可以通过调用Windows API函数CreatePolygonRgn。您可能需要手动重新对齐子控件。
如果您不需要面板包含任何子控件,则应考虑使用形状对象(TShape
),您可以使用现有的对象,也可以创建自己的对象。
另一个选择是使用常规面板,并将形状绘制为背景。最简单的方法可能是实现自己的TPanel
类并处理绘制代码。这不会塑造面板,但您可以模拟它的视觉特征。如果您需要子组件,则可能需要覆盖Realign
函数以确保子组件保持在成形的面板边界内。
或者你必须在互联网上试试你的运气,找到实现这一点的第三方组件,我做了一个快速搜索但发现没有专门做这个的面板,虽然我必须承认我的搜索不是太彻底,你可能比我好运。
答案 1 :(得分:4)
似乎为时已晚,但我知道Angus's site上有一个免费的。(“绘图对象”)。 (我误解了你的需要就像你的问题中的非{rec> 形式一样TRzShapeForm。)
对不起。
angus's Drawing Objects http://angusj.com/delphi/drawobj3.png
答案 2 :(得分:0)
我购买http://www.tmssoftware.com/site/products.asp?t=vclp看起来它可以做我想要的(并提供源代码,以防它只能达到我想要的90%)