大约在 1998 年,我厌倦了 TStringGrid,开始了一段漫长的旅程。我大量使用了虚拟网格视图控件,包括 Roman Mochalev 的 ExGridView(此处移植到 Delphi 2010/XE )和 developer express 的量子网格控件,以及与之配套的打印套件,以及 Mike Lischke 的 Virtual Tree View。是的。这是一个树视图。但是,如果您不创建多个级别的节点,它也会创建一个非常棒的虚拟网格。
最后,这些都不是完美的。您的应用程序的要求可能包括:
印刷。如果是这样,我会选择Developer Express组件,因为他们的网格组件和其他组件在他们的打印套件中内置了打印支持。
很多定制绘画,但没有印刷。如果是这样,我会回到 VCL TDrawGrid,因为否则更复杂的股票绘画系统只会妨碍你。
保持简单。如果是这样,我推荐ExGridView 组件。其他解决方案似乎都让我完成了 98% 的工作,并且需要大量的维护来解决自定义绘画故障、打印故障或其他任何问题。如果您想要的只是一个 Windows 2000 时代的虚拟网格显示模型中的数据,请使用 ExGridView。
将来可能需要嵌套节点(树的东西)。那么现在就从 VirtualTreeView 开始,暂时将其用作网格,稍后无缝添加树功能。
在您的情况下,可能有更多的“附加要求”,而不是我在这里所能想到和列出的。但正是这些“也”的东西将(或应该)决定你的选择。您的应用程序必须 24/7/365.25 运行?好吧,那就保持简单,避免以后会伤害你的花哨的东西。
既然您声明您需要打印、漂亮的主题绘画,并且您已经拥有 Developer Express 组件,那将是 #1 最合乎逻辑的选择。它是一个稳定、成熟、高质量的组件套件。对于稍后查看此问题的其他人,我唯一需要注意的是,它是一个复杂、重量级的解决方案,并且不适用于 100% 的“只需要比 TStringGrid 更好的可行网格”的所有 Delphi 应用程序。DevEx Quantum Grid 可以复制您在 Outlook 中看到的几乎所有网格功能,例如,包括“分组依据”功能。