所有的Tools API声明都在同一个单元,即ToolsAPI里。想使用ToolsAPI,你必须使用designide包,意味着你需要将你的OTA插件编译成设计期的包或者使用运行期支持的DLL。关于包和库的有关说明,请看如何安装向导包。
因为编写Tools API扩展的主要接口是IOTAWizard,所以,大部分IDE插件被称为向导。C++Builder和Delphi中的向导,对大部分场合来说,是交互性的。你可以在Delphi中编写、编译一个向导,使用在C++Builder中使用,倒过来也同样。交互性在相同的版本号时工作得很好,但是编写一个向导,使他们可以在这两个产品将来的版本中使用也是可能的。使用OTA,你编写的向导类需要实现一个或者多个在ToolsAPI单元里定义的接口。向导利用由ToolsAPI提供的服务。每个服务即是一个表现了一组相关功能的接口。在IDE中,接口的实现被隐藏了。Tools API仅公开接口,这样你可以不用了解这些接口是如何实现的就可以用来编写向导。不同的服务提供了对源代码编辑器、窗体设计器、除错器等的访问能力。查阅“获取Tools API服务”获得关于使用接口为你的向导提供服务方面的信息。
服务和其他接口是两个基本分类。你可以从他们的类名的前缀来区分它们:
NTA(本地Tools API)可以直接对IDE对象进行访问,如IDE的TMainMenu对象。当采用这些接口时,向导必须使用Borland的包,即此向导与IDE的版本是有紧密关系的。向导可以在设计期的包中或者在使用运行期包的DLL中。
OTA则不需要包而是仅通过接口来访问IDE。理论上,你可以采使用任何支持COM方式接口、可以提供Delphi的调用约定和Delphi的类型,如AnsiString的语言来编写向导。OTA接口并不提供对IDE的全面访问许可,但是通过OTA接口,可以使用大部分ToolsAPI的功能。如果向导仅使用OTA接口,那就可能编写出一个不依赖于指定IDE版本的DLL。
Tools API有两类接口,即你,程序员需要实现的,和IDE的实现。大部分的接口属于后者,即这些接口定义了IDE的能力,但是隐藏了它们的实现。你需要实现的接口分成三类:向导、通知工具、创建器。
象在前面主题里讲过的,一个向导实现IOTAWizard和可能从它继承的接口。
通知工具是Tools API的另一类接口。当有些你感兴趣的事发生时,IDE用它来回调你的向导。你编写一个类来实现通知工具接口,采用Tools API注册这个通知工具,当用户打开文件、编辑源代码、修改窗体、开始调试过程等工作时,回调你的这个对象。在将IDE事件通知给向导时,通知工具开始工作。
创建器是你必须实现的另一类接口。Tools API使用创建器创建新的单元、项目或者其它文件,或者打开已经存在的文件。查阅创建窗体和项目了解关于创建器接口的相关信息。
其它重要的接口是模块和编辑器。模块接口代表一个打开的单元,它可能有一个或多个文件。一个编辑器接口代表一个打开的文件。不同类别的编辑器接口提供你访问IDE的不同方面,如访问源文件的源代码编辑器,访问窗体文件的窗体设计器,访问资源文件的项目资源接口等。查阅访问文件和编辑器了解关于模块和编辑器接口相关的内容。