使用工具API扩展IDE

来自RAD Studio
跳转到:航行搜索

转到VCL组件作者指南索引


您可以使用Tools API,通过自己的菜单项、工具栏按钮、动态表单创建向导等扩展和自定义RAD Studio IDE。

工具API是一套由100多个接口组成的套件,这些接口与IDE交互并控制IDE,包括主菜单、工具栏、主操作列表和图像列表、源编辑器的内部缓冲区、键盘宏和绑定、表单编辑器中的表单及其组件、调试器和正在调试的进程、代码完成、,消息视图和待办事项列表。

要使用工具API用新功能扩展IDE,请执行以下操作:

  1. 创建一个包并将其配置为扩展IDE。您也可以使用现有包。
  2. 实现IDE扩展的逻辑
  3. 将扩展安装到IDE上

创建或扩展包以扩展IDE

要使用工具API扩展IDE,必须首先创建或扩展包,以便它可以使用Tools API

一旦你有了一个包,你就可以实现你的代码使用数据模块添加数据模块到您的包裹,更改其框架亲和力到VCL,并使用其OnCreate(创建时)OnDestroy(销毁时)事件来定义创建和销毁IDE扩展的代码。

或者,您可以在包的单元或包的主源代码文件中定义扩展名。

实现IDE扩展的逻辑

包中的代码可以使用Tools API提供的服务。每个服务都是一个接口,提供一组相关功能。各种服务提供对代码编辑器,的表单设计器、调试器等等。

此外,您可以使用特殊接口实现某些功能,如向导、通知程序、创建者、模块、编辑器等。

所有工具API接口都在您可以在中找到的单元中声明C: \程序文件(x86)\Embarcadero\Studio\23.0\source\ToolsAPI。您可以检查这些单元的内容,以发现扩展IDE的新方法。这个图书馆参考文献通常不提供工具API的参考文档。但是,对于平台API工具API的单位。

本机工具和开放工具API接口之间的差异

接口分为两个基本类别。您可以通过用于类型名称的前缀来区分它们:

  • NTA(本机工具API)授予对实际IDE对象的直接访问权,例如主菜单IDE的对象。使用这些接口时,向导必须使用RAD Studio包,这也意味着向导与特定版本的IDE绑定。向导可以驻留在设计时包或使用运行时包的DLL中。
  • OTA(Open Tools API)不需要包,只通过接口访问IDE。理论上,您可以用任何支持COM风格接口的语言编写向导,前提是您还可以使用Delphi调用约定和Delphi类型(如AnsiString)。OTA接口不授予对IDE的完全访问权限,但几乎所有Tools API的功能都可以通过OTA接口使用。如果向导只使用OTA接口,则可以编写不依赖于特定版本IDE的DLL。

扩展IDE时要遵循的约定

工具API为您提供了以多种不同方式扩展IDE的灵活性。当您扩展IDE时,请确保您的扩展能够很好地集成到IDE中,并且不会妨碍IDE的核心功能。

以下是扩展IDE时应遵循的一些约定:

  • 如果你提供菜单项要打开外部工具,请在工具菜单。
  • 如果提供菜单项以打开帮助资源:
    • 如果提供单个帮助菜单项,请将菜单项放置在帮助>第三方帮助显示产品名称的。
    • 如果提供多个帮助菜单项(例如,脱机帮助条目和联机帮助条目),请将菜单项放在帮助>第三方帮助它显示产品的名称,然后将帮助菜单项作为该帮助菜单项的子菜单项包含在内。
请参阅:

IDE扩展必须支持大内存地址

IDE是大地址软件,这允许IDE使用最多4 GiB的内存。因此,IDE扩展还必须能够处理大型内存地址。

大多数IDE扩展都应该支持大内存地址。以下列表包含一些提示,可帮助您检测IDE扩展中的问题:

在IDE上安装扩展包

一旦你的包裹准备好了,要使用你的包裹,你必须编译它将其加载到IDE

IOTAVersionSKUInfoService接口

此界面允许您查询已安装平台、SKU的列表,以及运行的IDE是否为试用版:

属性SKU:整数读取GetSKU;

属性IsProductTrial:布尔值读取GetIsProductTrial;

属性平台:TArray<TPlatformIds>读取GetPlatforms;

SKU标识符记录在定义接口的ToolsAPI.pas文件中。

你可以使用平台API。平台IDToName将平台ID转换为人类可读的名称。ID记录在系统中。课程。

可以在中查询已安装的个性工具API通过IOTAPersonalityServices接口。

话题

另请参见