【问题标题】:Possible to embed WinForms into a VCL Delphi application?可以将 WinForms 嵌入到 VCL Delphi 应用程序中吗?
【发布时间】:2011-03-20 22:05:30
【问题描述】:

我们有一个 VCL Delphi 2005 应用程序,并希望使用 DevExpress 的 XtraReports 组件,该组件适用于 .NET。不转换VCL Delphi 应用程序是否可以使用?

也许通过将组件转换为 COM 对象,或者创建一个 WinForms 应用程序,并以某种方式将表单嵌入到 VCL 表单中?

听起来不太容易,但只是想知道有哪些可能的解决方案。

【问题讨论】:

  • 你不应该;报告引擎受益于紧密集成到您的 Delphi 环境中。 Delphi 有多个非常有能力的本机报告生成器,包括 Fast Report。如果您绝对需要使用 XtraReports,不妨将您的应用程序转换为完整的 .NET 代码:无论如何,您都会为 The Framework 付出代价,您不妨使用它。
  • Dev.Express 有一个非常好的报表引擎,用 Delphi 原生编写,你为什么不用这个?
  • @Edelcom,您能否提供一个指向 Delphi 报告引擎的链接?我看到他们有一个打印组件,但没有看到一个报告组件。
  • 对不起,我的意思是打印组件,它非常复杂 - 你可以在 Dev.Express(和 Delphi)组件中显示的任何内容,获取打印,你可以设置所有页面元素、页眉、页脚,页面布局等等...我自己使用组件和代码,我使用 html 作为报告语言和 HtmlViewer 开发自己的组件,我是否在多年前停止使用所有不同的报告组件。使用 html 可以做的事情令人惊叹。

标签: winforms delphi


【解决方案1】:

Robo,您可以使用RemObjects Hydra 3.0 组件,通过插件集成Delphi 和.Net 技术。

【讨论】:

    【解决方案2】:

    是的,有可能。您需要从您的 Delphi 应用程序托管 CLR 才能执行此操作。

    有一些examples on MSDN 说明如何执行此操作(但示例使用的是 C++,因此您需要翻译)

    或者您可以使用 JEDI 网站上的 Jedi jclClrHost 单元。 (有关详细信息,请参阅this question

    【讨论】:

    • 我不知道 jclClrHost。好的。谢谢。我仍然认为这样做几乎总是一个坏主意,特别是如果只是使用标准的 .net 框架类或使用具有本机等价物的 .net 组件或工具包,而不是因为您必须与大型专有软件进行互操作.net 中的框架。
    【解决方案3】:

    这是个坏主意。是的,你可以这样做。不,你不应该。

    首先看看Developer Express“快速打印系统”和快速报告。第一个是文档/组件打印解决方案,是目前最好的解决方案,后者是目前最好的数据库报告组件,它还以极大的灵活性和风格处理非数据库(基于代码)的报告/打印。

    我有使用Express Printing System打印基于Developer Express Spreadsheet组件的电子表格文档的第一手经验,该组合非常强大,易于使用。 Developer Express 和 Fast Reports 都有非常活跃的开发和良好的技术支持。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-20
      • 2019-07-14
      • 1970-01-01
      • 2020-07-22
      • 1970-01-01
      • 2015-08-29
      相关资源
      最近更新 更多