C语言必威体育精装版编程技巧200例附录A 使用OPENTOOLS API的Delphi扩展示例.docVIP

C语言必威体育精装版编程技巧200例附录A 使用OPENTOOLS API的Delphi扩展示例.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
附录A 使用OPENTOOLS API的Delphi扩展示例 附录A与第11章的内容前后承继。阅读第11章之后,您已经了解了创建定制组件的大部分知识。附录A也很重要,它示范了如何创建组件编辑器以及使用OpenTools API对Delphi自身进行扩展。二者分属不同的主题:一个与组件相关,另一个则是要扩展Delphi。之所以将二者放到附录中,是因为它们没有其他技术那样常用。但要用到二者的时候,它们都是很有用的。 定制组件编辑器可以定义设计时对话框,编辑器在Object Inspector不够用时,使得用户能够可视化地修改特定于该组件的每个方面。一个很好的例子就是TChart组件,由Dave Berneda开发。另外,在设计时您还可以从组件的上下文菜单中运行该组件所包含的代码。 假定您使用Delphi已经有一段时间了,而您认为Delphi缺乏某些必要的特征。我三年前在一个工程上工作时,就发生了这样的情况。当时正在对Rational Rose所定义的系统结构模型进行编码,我们已经厌烦了手工定义类并编写函数体。实在是太烦了。创建一个类来读取类的声明并编写函数体,这看来是个不错的主意。使用OpenTools API,有时候再借助一下Ray Lischner的书《Hidden Paths of Delphi 3: Experts, Wizards, and the Open Tools API》,我们最终向Delphi添加了一个能够调用类生成器的菜单项。结果终于摆脱了这本来可以自动完成的、烦人的任务(可惜的是我们没有一本语法分析方面的好书,我有点离题了)。 这准确地描述了Inprise公司在决定向Delphi专业版和企业版用户提供OpenTools API时的想法。当需要Delphi具有某些功能时,添加上去就行了。Delphi现在还具有“Complete class at cursor”的代码生成功能,因此我们可以创建一个尚不存在的专家:可以生成专家的专家。 当您阅读本章后,可以了解到如何创建组件编辑器以及怎样使用专家对Delphi进行定制。有一个工具可用于开发定制专家,这使得创建专家与创建组件一样容易。 A.1 OpenTools API介绍 OpenTools API原来定义为抽象虚类,即它使用了Delphi接口,而我们可以继承它以便向Delphi添加扩展。原来的那些单元仍然存在于你安装的Delphi的Source\ToolsAPI子目录下,但在大多数情况下它们已经让位于ToolsAPI.pas单元中定义的COM接口。 注意:ToolsAPI单元与Delphi专业版和企业版一同发布。您也可以对Delphi标准版进行定制,只是包含相应接口的单元在Delphi标准版中是没有的。 如果您对Delphi抽象接口比较熟悉,那么比从零开始要好一些。不管怎样,您都应该学习COM接口,这正是我们在本章中要做的。 A.1.1 OpenTools接口 大多数情况下,OpenTools接口都是位于Source\ToolsAPI\ToolsAPI.pas单元中的COM接口。为提高后向兼容性,该目录下也定义了风格较老的Delphi接口。表A.1完整地列出了ToolsAPI中的所有单元。带有星号的单元包含了风格较老的Delphi接口,通常应该避免在较新的代码中使用。 警告:很差的是,这些单元在帮助文件中并没有很好的文档。首先要参考单元中的代码;代码中的注释很有帮助,但默认某些知识;而经过仔细查找,我们发现几乎完全没有集成化的帮助。这真是个不幸,如果要进行扩展,您必须阅读许多代码并进行实验。 表A.1 Delphi ToolsAPI单元列表。通过实现ToolsAPI.pas单元中 定义的COM接口,可以访问Delphi的大部分功能 单元 描述 toolsapi.pas 包含了新的COM接口,它替换了在其他单元中可以找到的风格较老的接口(本章中将广泛地使用该单元的接口) vcsintf.pas 包含了与版本控制系统进行链接的COM接口 dsgnintf.pas 包含了特性编辑器、组件编辑器以及注册过程所需的接口(例如,RegisterComponentEditor) editintf.pas* 风格较老的Delphi抽象接口,用于访问编辑器缓存,例如单元的文本 exptintf.pas* 风格较老的单元,其中包括了用于定义专家的抽象虚类TIExpert;新代码应使用ToolsAPI单元中的COM接口 fileintf.pas* 风格较老的单元,其中包括了用于访问文件系统功能的抽象虚接口 istreams.pas* 包含了流、内存流、文件流的接口 toolintf.pas* 与Delphi菜单和ToolServices相关的接口;在新代码中应

文档评论(0)

tcpe + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档