Delphi Open Tools API概述
Delphi为我们提供了一组AIP(Open Tools API),允许我们使用这些函数,将自定义的菜单项、工具栏按钮、创建窗体专家以及更多的东西加入到IDE中,以提高自己的开发效率。
使用Tools API是一件很容易的事,只要实现一些特定的接口,并调用另一些接口提供的服务即可。编写一个Tools API代码和编写组件或是属性编辑器很类似,必须将这些代码编译为设计期包或是DLL加载到Delphi的IDE中。
所有的API函数都声明在ToolsAPI单元中,其位置在Delphi的安装目录下Source/ToolsAPI目录中,大家可以看到这个单元中的接口都是以OTA或是NTA作为前缀名称的(关于这两个前缀的含义在单元的头部也给出了简单的说明:OTA -- Open Tools API;NTA -- Native Tools API),从这里我们可以看出,Delphi将API划分为两类,OTA只能通过接口访问IDE,不受IDE版本的限制;NTA允许访问实际的IDE对象,如IDE中的TActionList、TMainMenu等。使用这些接口时必须引用Borland包,这意味着实现这些接口的代码将限制于特定的IDE版本。
有些接口后面会有一些数字,如IOTAServices50,这表示这个接口是在5.0的IDE中使用的,为了向前兼容,Borland没有直接修改此接口,而是在此接口的基础之上再派生出新版本的接口。
在Open Tools API中最重要的一个接口就是IBorlandIDEServices接口了,他代替了老版本中的具有许多许多方法的单一模式对象ToolServices。他实现了许多不同的COM接口,通过他我们就可以得到我们所需要的Services接口(后缀以Services结尾的接口都可以由IBorlandIDEServices接口转型得到)。
ModuleServices:IOTAModuleServices;
...
ifSupports(BorlandIDEServices,IOTAModuleServices,ModuleServices)then
begin
...
end;
接口名称 |
描述 |
IOTAActionServices | 利用此接口执行一些文件动作,如打开、关闭和保存等 |
IOTAModuleServices | 利用此接口可以注册通知器(Notifier),创建新文件,还可以通过它访问Editor Interfaces,Project Options等等 |
IOTADebuggerServices | Delphi调试器接口,这个接口没有完全实实,其中的GetCurrentProcess方法始终返回Nil值。 |
IOTAWizardServices | 注册和反注册Wizard。编写为DLL的Wizard必须使用Wizard Services注册 |
IOTAPackageServices | 通过此接口可以获得已安装的包及其组件的列表 |
IOTAMessageServices |
可以利用此接口将信息显示到Delphi IDE中的“消息查看”窗口中 |
IOTAToDoServices | 通过他可以获得Delphi中的TO DO List信息 |
IOTAServices | 这个接口不像其他接口可以“见名知意”,它可以注册IDE通知器,也可以获限环境选项接口 |
INTAServices | 使用这个接口必须使用VCL50.BPL包,它可以直接访问IDE中实际的对象,如菜单对象, 动作列表(Action Lists), 工具栏等 |
通过学习和使用Open Tools API,你会领略到Delphi IDE的完美设计。
访问http://delphi.about.com/library/weekly/aa033099.htm可以获取更多关于Open Tools API的知识。
版权声明:本文为博主原创文章,未经博主允许不得转载。