【问题标题】:Delphi 2010 Changing class names when importing type library?Delphi 2010 导入类型库时更改类名?
【发布时间】:2015-11-06 21:29:02
【问题描述】:

我正在尝试使用 delphi 创建数据库,因此我将导入“Microsoft ADO Ext. 2.8 for DDL and Security”以连接到访问数据库,但我无法在它之前编辑类名像在delphi 7中一样导入,例如将“TTable”更改为“TADOXTable”。因为更改类名的框是灰色的。

有没有办法改变这一点,还是我必须手动编辑生成的 ADOX_TBL.pas 文件中的类名?

【问题讨论】:

  • 你为什么要这样做而不是仅仅使用 Delphi 的 TAdoxxx 组件(TAdoDataSet、TAdoQuery 等)?它们基于从 MDac ADO 层导入 COM 对象,但有很多额外的编码,以便作为 Delphi 的 TDataset 的后代工作。他们可以使用 Access、MS Sql Server 和各种其他后端数据库。
  • @MartynA 老实说,这是我第一次尝试从 delphi 程序创建和管理数据库,我遵循的指南显示它是以这种方式完成的。这就是我想要关注的delphi.about.com/od/database/l/aa072401a.htm
  • Delphi About.com 有很多糟糕的内容
  • @DavidHeffernan 您将如何通过 delphi 创建访问数据库。我只能找到有关连接到已创建文章的文章。
  • 这是一个完全不同的问题。

标签: delphi delphi-2010


【解决方案1】:

恐怕“有没有办法改变这个或者我必须手动编辑生成的 ADOX_TBL.pas 文件中的类名?”的简短回答?似乎分别是“否”和“是”,至少对于 D2010 和例如CB2007。

我认为他们在某些时候重新设计了组件安装向导,并且编辑 CoClass 名称的能力在几个版本中失灵了。我不确定,但这可能与他们显然必须做的工作有关,以允许导入网络程序集。

幸运的是,这不是一个阻碍,因为正如您所说,您可以编辑 TLB 导入 .Pas 文件中的名称,然后将其添加到新的或现有的 Package .Dpk 文件的“包含”子句中。

如果您必须反复重新导入同一个类型库,这可能会变得乏味。在这种情况下,您可以查看 Delphi Bin 目录中的文件TLibImp.Sym。除其他外,它包含许多 COM 库的等式映射(为某些库创建更合理的名称并避免其他库之间的名称冲突)。它没有记录在案,但如何向其中添加您自己的条目应该是相当明显的。

XE4 恢复了编辑 CoClass 名称的功能,如下所示:

单击类名称列表右侧的 [...] 按钮会弹出此弹出窗口

您可以在其中编辑向导将在 TLB 导入单元中创建的组件的类名,就像在 D7 中一样。

【讨论】:

  • 看起来这必须是一个改进,因为该菜单的 2010 版本看起来像!this.
  • 表达“啊!”浮现在脑海。我可能还在某处安装了 D2010 的副本,但请不要屏住呼吸。
  • 我认为一定有办法做到这一点,我不明白你为什么要删除该功能。
  • 这是否回答了您的问题,即使它不是您希望的答案?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-19
  • 1970-01-01
  • 1970-01-01
  • 2016-09-19
  • 2012-09-10
  • 2014-11-09
  • 1970-01-01
相关资源
最近更新 更多