建议最有用的Delphi TStringGrid(网格)替换

时间:2011-06-28 06:56:43

标签: delphi printing report tstringgrid tgrid

Delphi的一个较弱的区域是网格(例如TStringGrid),虽然它做了一个很好的基本工作,但是当你需要打印它或定制它的外观时它会变得更难。我已经使用它大约15年,因此它非常嵌入我的应用程序中,随着时间的推移,我推出了TGrid-to-RTF转换的家庭解决方案(通过MSWord进行打印),并使用TDrawGrid进行更多定制。我的解决方案(仍然)必须在Delphi 7和Delphi XE中工作。碰巧的是,我的网格都不是DB绑定的,它们都是用代码填充的。

现在我打算整理我的报告和'漂亮'我的表单,这意味着用更强大的实现替换网格。那里有负载,我有两个Developer Express Quantum GridTMS Grid Pack。虽然通过字体,颜色和打印​​体验,时间非常有限,我将非常感谢我应该采用的许多网格/打印显示报告组合的建议。我现在没有报告生成器,正在考虑FastReports,但我愿意接受建议。

6 个答案:

答案 0 :(得分:13)

1998年左右,我厌倦了TStringGrid并开始向外漫长的旅程。我大量使用了虚拟网格视图控件,包括Roman Mochalev的ExGridView(移植到Delphi 2010 / XE here)和developer express的量子网格控件,以及随之而来的打印套件,以及Mike的Virtual Tree View蚶。是。这是树视图。但是如果你不创建多个级别的节点,它也会创建一个非常棒的虚拟网格。

最后,这些都不是完美的。您的申请要求可能包括:

  • 打印。如果是这样,我会转向 Developer Express 组件,因为他们的网格组件和其他组件在其打印套件中内置了打印支持。

  • 很多自定义绘画,但没有印刷。如果是这样,我会回到VCL TDrawGrid ,因为否则会有更复杂的股票绘画系统妨碍你。

  • 保持简单。如果是这样,我建议使用 ExGridView component。其他解决方案似乎都让我98%的方式,并需要一吨维护来解决自定义绘画故障,打印毛刺,或其他任何问题。如果您只想要一个Windows 2000时代的虚拟网格显示模型中的数据,请使用ExGridView。

  • 将来可能需要嵌套节点(树状物)。然后立即开始使用VirtualTreeView,现在将其用作网格,并在以后无缝添加树功能。

在您的案例中,还有许多“额外要求”可能比我想象的更多,并在此处列出。但是这些“也”的东西会(或应该)决定你的选择。您的应用程序必须运行24/7 / 365.25?那么,保持简单,避免花哨的东西,以后会伤害你。

既然你说你需要打印,看起来很漂亮的主题画,你已经拥有了Developer Express组件,那将是最合乎逻辑的选择。它是一个稳定,成熟,高品质的组件套件。对于后来查看此问题的其他人,我唯一需要注意的是,这是一个复杂的,重量级的解决方案,并不适合100%的所有Delphi应用程序“只需要比TStringGrid更好的可行网格”。 DevEx Quantum Grid可以复制您在Outlook中看到的每个网格功能,例如,包括“分组依据”功能。

答案 1 :(得分:7)

Virtual Treeview组件可能是可能的。我们在应用程序中将其用作网格。我没有尝试打印,但我会在不久的将来的某个时候。它可以导出到富文本或html,这可能是有用的。

编辑:顺便说一下,它是开源的,非常精致。

EDIT2:更正了组件的名称。我最初这样做了,但是当我建立链接时它就丢失了。

答案 2 :(得分:4)

我强烈建议您使用 ExpressQuantumGrid

您可以考虑使用TStringGridToCxGrid Facade类替换TStringGrid并将遗留代码翻译为TcxGrid

答案 3 :(得分:4)

我一直对KGrid感到好奇。然而,除了一些简单的测试,我还没有使用它。如果您对免费替代品感兴趣,那么值得一试。

答案 4 :(得分:2)

您可能还想考虑BergSoft NextGrids http://www.bergsoft.net/

几乎没有任何成本,而且得到了不错的支持

答案 5 :(得分:1)

您可以尝试使用EhLib库,包括TDBGridEh组件。它便宜又强大。 http://www.ehlib.com

相关问题