【问题标题】:Upgrade Delphi 2007 to XE6 - Where's the Type library Editor?将 Delphi 2007 升级到 XE6 - 类型库编辑器在哪里?
【发布时间】:2014-10-15 08:08:26
【问题描述】:

这可能是我正在做的愚蠢的事情,但我已经从 2007 升级到 XE6/7,我似乎无法在新版本中找到类型库编辑器。

我知道 TLB 格式在以后的版本中发生了变化,我有 Myproject_TLB.pas 样式文件,可以编译但我无法更改它们。

帮助文件似乎表明库编辑器仍然存在,但我找不到访问它的方法,“查看/类型库”选项显示为灰色。

谁能指出我正确的方向,我需要添加更多属性,帮助文件没有用。

【问题讨论】:

  • 新版本使用基于 ridl 的文件来存储类型库。这更好,因为它是文本。在此处查看 D2009 的新增功能:docwiki.embarcadero.com/RADStudio/en/…
  • @David 是的,我知道,缺少的是我必须做的事情来编辑我的旧式项目类型库。
  • 将 .tlb 文件转换为 .ridl 文件是我的做法。我想。

标签: delphi delphi-2007 delphi-xe6


【解决方案1】:

类型库编辑器仍然存在,但现在是 RIDL 文件类型的嵌入式编辑器。根据 David 的评论,IDE 现在使用这种 RIDL 文件格式作为类型库的存储格式,而不是 TLB 文件。

当您在 XE6+ IDE 中打开 RIDL 文件时,您会发现一个非常熟悉的编辑器界面 - 基本上是 类型库编辑器。但是,顶部的 AttributesUsesFlags 等不是旧的 Text 标签,而是现在通过底部标签条到达。 RIDL(文本)视图显示在 Code 选项卡中,而 Type Library Editor 样式视图显示在 Design 选项卡中。

您只需将 D2007 项目中的 TLB 文件转换为 RIDL 格式,然后将这些 RIDL 文件添加到您的 XE6+ 项目中。 TLB 文件将根据 IDE 的需要从这些 RIDL 文件生成,类似于从 RC 资源脚本生成二进制 RES 文件的方式。

旧的类型库编辑器也支持这种 RIDL 格式,因此将旧的 TLB 文件转换为 RIDL 的一种方法可能是:

  • 在 D2007 IDE 类型库编辑器中打开 TLB 文件
  • 在层次结构中选择库根节点
  • 切换到“文本”选项卡
  • 选择全部内容
  • 复制/粘贴到文本编辑器并保存为文件 RIDL 扩展
  • 将该 RIDL 文件添加到您的 XE6+ 项目中

然后您可以选择通过直接编辑 RIDL 或使用您可能更熟悉的设计界面来修改您的类型库。但是,无论您选择哪个选项,现在应该将 RIDL 文件添加到您的版本控制中,而不是 TLB。

如果您没有可用的旧 IDE,或者您只是喜欢,您可以使用 Delphi 提供的命令行实用程序进行转换:

tlibimp -I foo.tlb

将为指定的 foo.tlb 输入文件创建 foo.ridl 文件。请注意,旧版本的 tlibimp 不支持这种形式的 -I 选项,但应受 Delphi 2010 及更高版本提供的版本支持。

如果您收到一个错误提示您需要在“I”选项之后标记“+”或“-”,那么您运行的是旧版本的 tlibimp,可能在你的路。

【讨论】:

  • 谢谢,不幸的是它是一台新机器,所以没有 D2007 进行转换。我发现我可以执行 File/open 并打开显示类型信息的 TLB 文件,但它不允许我编辑它。
  • 是的——就是这样。我曾尝试过,但在我的路径上一定有一些不支持普通“-I”选项的旧 tlibimp,但从 D2010 开始支持并完成这项工作。也会将其添加到答案中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-09
  • 2010-12-10
  • 2019-12-10
  • 1970-01-01
  • 2014-06-19
  • 1970-01-01
相关资源
最近更新 更多