你提到的网站谈论了用代码替换对话框组件,以便在不使用任何组件的情况下显示对话框。另一种选择是编写几行代码来设置和显示对话框,完全跳过组件。但这并不是速度或大小上的优化。这不是速度优化,因为你的代码实际上会像组件一样执行,而且这也不是大小优化,因为程序中一个组件占用的空间微不足道。数据库组件不像对话框组件那样容易替换。在Delphi中,几乎所有东西都设计为使用标准数据库组件的后代。如果你不使用这些组件,则根本无法使用Delphi的数据库功能。如果你的目标真正是优化,并且没有确定组件是程序非最佳行为的源头,那我认为使用数据库库的原生API将是愚蠢的。请考虑要花多少时间和精力来在没有数据库组件的情况下重写程序。
我不认为基于表单的数据集/查询/表格等会比在代码中创建的更快或更慢。然而,我喜欢将它们放在代码中,因为这样更容易维护。我曾经看到过屏幕上嵌入了SQL组件的情况,然后在代码中被覆盖。那么我就必须停下来调查确定哪个SQL实际上生效。有时候表单中的SQL很好,有时候它被用了一段时间,然后被代码所取代,有时候它从未生效,SQL被在表单创建时被取代。因此,我必须确定这是按设计还是随意留下的。此外,如果SQL在.DFM而不是.PAS中,很容易在代码审查中错过SQL更改。例如,我并不总是看.DFM,因为我不关心标签标题是否更改或按钮是否移动。 因此,虽然对于原型设计来说很好,但当涉及到生产代码时,最好将所有数据库逻辑(SQL、表和字段定义)都放在.pas文件中。 更新:我最终尝试了CnPack。在众多好处中,有一款名为“将选定组件转换为代码”的杰出工具。表单设计向导| 更多... |将选定组件转换为代码。它可以为您完成所有操作。
这不是一个组件或非组件的问题。如果涉及到数据库访问,BDE是非常慢的,所以换成其他的东西是一个很好的选择。顺便说一下,优化不是关于“经过验证的技术”,而是关于识别问题并解决它。如果问题恰好是慢的数据库访问,那么这就是你需要改变的地方。