寻找非矩形面板 VCL 组件 [关闭]
Posted
技术标签:
【中文标题】寻找非矩形面板 VCL 组件 [关闭]【英文标题】:Looking for non-rectangular panel VCL component [closed] 【发布时间】:2011-01-04 11:13:14 【问题描述】:有时我想要L形、T形、三角形、多边形……
请免费的可重用组件。 . .
【问题讨论】:
现在,我们可以在softwarerecs.stackexchange.com提出这样的问题 【参考方案1】:似乎为时已晚,但我知道Angus's site.("Drawing Objects") 上有一个免费的。 (我从你的问题中误解了你需要的是像TRzShapeForm 这样的非矩形form。)
对不起。
(来源:angusj.com)
【讨论】:
我注意到他从他的网站上删除了这个组件。 (这个答案可能是增加请求或问题..)。您可以从 Internet 存档下载此组件(至少现在是 2013 年 3 月 13 日)。wayback.archive.org/web/20100926090549/http://angusj.com/delphi【参考方案2】:这里有很多可能性,其中一种是实现您自己的组件,从TPanel
派生并使用区域指定面板的区域,这可以通过调用 Windows API 来完成函数CreatePolygonRgn。您可能必须手动重新调整子控件。
如果您不需要面板包含任何子控件,则应考虑使用形状对象 (TShape
),您可以使用现有对象的组合,或创建自己的对象。
另一种选择是使用常规面板,并在其上绘制形状作为背景。最简单的方法可能是实现您自己的TPanel
类并处理绘制代码。这不会塑造面板,但您可以模拟它的视觉特征。如果您需要子组件,您可能需要重写 Realign
函数以确保子组件保持在成形面板边界内。
或者,您必须在互联网上碰碰运气,找到实现此功能的 3rd 方组件,我进行了快速搜索,但没有找到可以专门执行此操作的面板,尽管我必须承认我的搜索不太彻底,您可能运气比我好。
【讨论】:
是的,Tommy,我知道我可以自己编写代码。我什至知道怎么做;但我也知道这样做会给后人带来痛苦——这就是为什么我希望有一个免费的组件可以避免我重新发明太多的***。 (顺便说一句,panel 确实需要支持子控件;它需要支持 TPanel 所做的一切。我需要一个子类)而且,是的,我确实知道如何使用 google。我在这里是因为和你一样,我什么也没找到(经过严格的搜索) mawg - 也许您应该在问题中说明您正在寻找现有的免费可重用组件【参考方案3】:我购买了http://www.tmssoftware.com/site/products.asp?t=vclp,它看起来可以做我想做的事(并提供源代码,以防它只做我想做的 90%)
另见Seeking floorplan design VCL toolbar
【讨论】:
以上是关于寻找非矩形面板 VCL 组件 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章