9

我能想到的大约有四种实现能够将 SVG 图形加载到 Delphi 应用程序中。

其中之一是FMX.Canvas.VPR 的作者 Mattias Andersson与 FireMonkey 合作,但他还没有准备好发布代码。

第二个由Martin Walter编写,与 VCL 一起工作,但开发人员已退出 Delphi,并且没有计划转换为 FireMonkey。

第三个是AGGPAS框架的一部分,与 VCL 一起工作,但没有 FireMonkey。

Jason Southwell 正在开发第四个,但尚未确定日期。

所以我的问题是:如果我今天想要一个 SVG 组件,而不试图重新发明轮子第五次(可能更多次),该怎么办?

4

4 回答 4

5

我是 Mattias Andersson——FMX.Canvas.VPR 的作者;我可以说我仍在积极研究 SVG 解决方案。我想一旦我正确添加了对渐变和文本渲染的支持,我就可以发布第一个 beta 版本。我依赖于 TXMLDocument,这对你被允许做的事情(IMO)有点限制,所以我不得不发明一些解决方法(也许更好的选择是从头开始实现我自己的 XML 类。)此外,我必须对 FireMonkey 类进行一些运行时修补,以使一切正常工作。好的部分是我实际上是根据 SVG 接口规范来实现的。

于 2012-01-12T03:32:56.737 回答
3

与 Mattias Andersson 一起参与开发是最好的选择:

  • Mattias Andersson 的FMX.Canvas.VPR看起来很有希望,VPR 被证明是一个优秀的项目
  • SVG FireMonkey截至发帖时,没有开箱即用的勺式组件可用(通常进行广泛的网络搜索)。
于 2012-01-11T06:09:51.827 回答
3

我一直在开发的 SVG 组件已作为我们的 Apesuite for Firemonkey 的一部分发布。

http://arcana.sivv.com/apesuite

于 2012-01-21T14:25:00.620 回答
1

您也可以考虑使用Chromiumembedded。只需在嵌入式浏览器中加载 svg。然后,您可以将 Delphi 代码与 javascript 混合,在 html 和 css 中混合等。

这样,您就可以让 Chrome 自己决定如何快速绘制内容(例如是否使用 gpu 加速)。

您将获得适当的 svg 支持,它很容易集成到您的应用程序中,它很灵活,并且有很多在线文档和示例代码可用。

于 2012-01-11T02:58:17.893 回答