delphi 将自定义文件编辑器集成到 IDE

delphi integrate custom file editor into IDE

我开发了一个自定义文件类型和一个自定义编辑器(基本上是一个带有多个数据页和一些额外按钮的树)。好的,我可以 运行 它可以独立运行,这很好,甚至可以将它添加到工具菜单中,但我想将它集成到 Delphi IDE 中,以便我的自定义编辑器(或类似的新版本)出现在 IDE 中,就像 DFM 文件具有自定义编辑器一样。我可以在 Delphi IDE 中找到对大多数扩展的引用,但不是这个。任何指导手?请注意,这不是 属性 或组件编辑器(文件类型与这两者都无关),也不仅仅是文本文件的语法高亮显示。

据我所知,目前无法将自定义编辑器可靠地集成到 Delphi IDE 中。所需的 API 根本不存在。参见 QC89028 Custom Module support

在 Delphi 2010 和 XE 测试版期间,我将大部分业余时间用于尝试集成资源编辑器。尽管这项工作得到了 Embarcadero 的官方支持,并得到了 IDE 工程师的一些半心半意的支持,但我始终无法让他们兑现承诺并展示模块 API。我最终放弃了这个项目。

更新: 我现在检查了我以前的信件,结果发现部分问题是 IOTAModuleCreator(用于实现 File|New for自定义文件类型)和 IOTAEditorContent(用于传输数据 to/from 自定义模块)仅支持文本数据。二进制数据被破坏。

您可以可能通过使用 ToolsAPI 的 IDE 插件执行此操作(请参阅 IDE 的源文件夹中的 ToolsAPI.pas (例如 Program Files (x86)\Embarcadero\Studio\source\ToolsAPI\ToolsAPI.pas。)

有关编写插件的一般信息,请参阅 David G Hoyle's excellent blog。一旦您了解了基础知识 - 即编写 'wizard' 并让它做一些事情 - 您将需要努力集成您的编辑器。

我从来没有这样做过,所以我不能保证它是可能的。然而,一些看起来值得研究和实现的接口是 INTACustomEditorView,它表示 'view'(文件打开时的文件选项卡 - 想想代码编辑器、欢迎视图、类型库编辑器等)和 IOTAEditorViewServices,注册您的自定义视图。我不知道您如何将视图类型与文件类型相关联,抱歉 - 可能与个性界面有关。您可能还对 INTACustomEditorSubView 感兴趣,它可以在文件底部创建一个选项卡。

祝你好运,如果你找到了解决方案请写在这里,以便其他人也能学习!