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的知识。
版权声明:本文为博主原创文章,未经博主允许不得转载。
相关推荐
Tools API是Delphi IDE的一个核心组成部分,它允许开发者扩展IDE的功能,创建自定义插件或工具,以满足特定的开发需求。 Tools API提供了丰富的接口和类库,使得程序员能够访问IDE的内部对象,如编辑器、工程管理器...
本文将详细介绍如何在Delphi中调用OpenAI的接口,实现与OpenAI服务的交互。 首先,为了在Delphi项目中使用OpenAI API,你需要注册一个OpenAI账号并获取API密钥。这个密钥将作为身份验证的凭据,用于在发送请求时...
标题中的"ToolsAPI.dcu"和"ToolsAPI.pas"是两个关键文件,它们在BCB(Borland C++ Builder)和Delphi编程环境中扮演重要角色。在Delphi和BCB这样的RAD(快速应用程序开发)环境中,".dcu"和".pas"文件是源代码和编译...
### Delphi 开发 API 方面技巧 在 Delphi 开发中,熟练掌握并运用 Windows API 是提高程序功能性和效率的重要手段。以下将详细介绍文件中提到的一些关键知识点。 #### 一、获得特殊文件夹名称 在编程过程中,经常...
Delphi的IDE扩展是一般程序员很少涉足的领域,不管是网上还是书店里,这方面的资料都是鲜有所见。Delphi7自带的帮助文件是我们最容易找到的资料,为了方便CnPack开发组成员以及对IDE扩展感兴趣的朋友对这一领域有更...
在Delphi中,我们需要引入`Windows`和`SetupAPI`单元,这样我们就可以访问到这些API函数。 ```delphi uses Windows, SetupAPI; ``` 接着,我们需要创建一个`DEVCLASS_ENUMERATOR`结构数组,用于存储设备枚举器的...
在本例中,Delphi使用CryptoAPI生成的自签名证书,包含了私钥和公钥对,以及证书持有者的身份信息。 2. **CryptoAPI**:这是Windows操作系统提供的一个API,用于处理加密和解密操作,包括生成密钥对、数字签名和...
在本文中,我们将深入探讨如何在Delphi环境中调用有道API进行翻译,利用XML方式来处理和解析返回的结果。这个过程涉及到网络通信、API调用以及XML数据的解析等关键知识点。 首先,你需要在有道API官网注册并申请API...
本话题聚焦于使用Delphi集成开发环境(IDE)调用谷歌(Google)API,尤其是与地图相关的服务。Delphi是一个强大的对象 Pascal编程工具,它允许开发者创建桌面、移动以及Web应用。而谷歌API,特别是谷歌地图API,为...
Delphi 完成的API Hook钩子dll,带示例,可截获API 用Delphi编写完成的API Hook钩子dll源代码,两个DPR文件,一个是DLL的工程文件,一个是示例的文件,通过这个钩子,可截获API,从前也有这样的,不过觉得这个用起来...
在本主题"delphi for WinSock API"中,我们将深入探讨如何使用Delphi结合WinSock API来实现TCP网络通信。WinSock,也称为Windows Sockets,是Windows操作系统中的一个编程接口,它为开发者提供了标准的接口,以便于...
标题中的"USB.rar_Delphi-USB_USB delphi_delphi usb_setupapi.pas_usb"表明这是一个使用Delphi编程语言开发的USB设备相关的项目,其中可能涉及到USB设备的扫描和管理功能。描述中提到的"USB设备扫描程序,使用...
Delphi Native API 是一个在 Delphi 编程环境中使用原生操作系统API的工具集,它允许开发者直接调用操作系统的核心功能,以实现更底层的控制和优化。在Delphi编程中,Native API 提供了访问Windows系统服务的能力,...
Chilkat Delphi DLL API v9.5.0.58 是一款专为Delphi开发者设计的库,它提供了一套全面的API接口,用于在Delphi应用程序中实现各种复杂的网络和文件处理任务。这个库的强大之处在于它集成了多种功能,包括电子邮件...
标题“Delphi动态调用API辅助工具”暗示了这个工具是为了解决在Delphi项目中使用API时遇到的问题,可能包括自动化的API函数生成、参数管理、错误处理等方面。这种工具通常能够简化API调用的过程,提高开发效率,减少...
DELPHI编写的HOOK API实现DLL全局钩子启动记事本的程序-DELPHI prepared HOOK API to achieve the overall hook DLL procedures start Notepad
然而,对于Borland C++Builder(BCB)和Borland Delphi这样的专业开发环境,开发者需要借助另一种机制来扩展其平台的能力,这就是ToolsAPI。本文将深入探讨ToolsAPI的概念、用途以及如何在BCB和Delphi中应用它。 ...
在本篇文章中,我们将深入探讨如何利用Delphi调用API直接对串口进行读写操作。 首先,我们需要了解API(应用程序接口)的本质。API是一组预定义的函数、常量、类型和结构,允许开发者访问操作系统或库的功能。在...
Delphi 12 一套将完整 Windows API 头文件...此 API 转换包括 311 个 Delphi 头文件*和 41 MB 代码,涵盖了微软提供的整个平台 API。 Delphi12 新增加,正版软件才可以下载。 包含全部源代码! 不可多得的好资源!
delphi win32 api 参考资料第二部分