【发布时间】:2011-01-04 11:13:14
【问题描述】:
有时我想要L形、T形、三角形、多边形……
请免费的可重用组件。 . .
【问题讨论】:
-
现在,我们可以在softwarerecs.stackexchange.com提出这样的问题
标签: delphi components c++builder vcl
有时我想要L形、T形、三角形、多边形……
请免费的可重用组件。 . .
【问题讨论】:
标签: delphi components c++builder vcl
似乎为时已晚,但我知道Angus's site.("Drawing Objects") 上有一个免费的。 (我从你的问题中误解了你需要的是像TRzShapeForm 这样的非矩形form。)
对不起。
(来源:angusj.com)
【讨论】:
这里有很多可能性,其中一种是实现您自己的组件,从TPanel 派生并使用区域指定面板的区域,这可以通过调用 Windows API 来完成函数CreatePolygonRgn。您可能必须手动重新调整子控件。
如果您不需要面板包含任何子控件,则应考虑使用形状对象 (TShape),您可以使用现有对象的组合,或创建自己的对象。
另一种选择是使用常规面板,并在其上绘制形状作为背景。最简单的方法可能是实现您自己的TPanel 类并处理绘制代码。这不会塑造面板,但您可以模拟它的视觉特征。如果您需要子组件,您可能需要重写 Realign 函数以确保子组件保持在成形面板边界内。
或者,您必须在互联网上碰碰运气,找到实现此功能的 3rd 方组件,我进行了快速搜索,但没有找到可以专门执行此操作的面板,尽管我必须承认我的搜索不太彻底,您可能运气比我好。
【讨论】:
我购买了http://www.tmssoftware.com/site/products.asp?t=vclp,它看起来可以做我想做的事(并提供源代码,以防它只做我想做的 90%)
【讨论】: