脚本扩展专家

脚本扩展专家

该专家使用 RemObjects Pascal Script 提供了 IDE 中的动态 Pascal 脚本的解释执行的支持,包括脚本控制窗口和脚本扩展设置等,可从菜单项中调用,也可由特定的 IDE 事件触发。

脚本控制窗口

脚本控制窗口提供了对脚本文件的编译运行等控制功能,而脚本文件的编辑则由 IDE 的编辑器来处理。脚本窗口上部是工具栏,中间是信息输出栏,其完整界面如图:

 

脚本扩展设置

脚本扩展设置窗口允许用户管理脚本文件库,各项脚本会显示在脚本扩展专家的子菜单中。脚本扩展设置窗口上部是工具栏,左边是脚本列表,右边是脚本设置区。如图所示:

 

 

脚本语法与函数库简介

PascalScript 脚本的语法和 Object Pascal 大体相同,但有以下几点是需要说明的:

PascalScript 脚本中可以使用的库函数均需要 CnWizards 在编译期写明并在运行期预先注册。CnWizards 目前预注册了一批系统函数和 IDE 的 Open Tools API 接口,其具体列表在安装目录的 PSDecl 目录下。需要说明的是,PSDecl 目录内的文件并不被运行期的 CnWizards 使用,而仅仅只供用户参考,它们基本来源于 VCL 中的同名文件但只包含声明不包括实现部分,并且为了适应 PascalScript 语法,可能有细微修改。凡是在 PSDecl 目录中各文件内列出的函数均可在 CnWizards 提供的 PascalScript 环境中调用,而函数使用方面的详细帮助则可查阅 Delphi 的帮助,这里不再重复。

安装目录的 PSDeclEx 目录下的文件,是由 CnWizards 额外注册的单元,主要包括对 Open Tools API 和 IDE 功能的访问封装。这些文件也不参与编译,不过它们都带有空实现体,以支持在 IDE 编辑器中的自动完成功能。

CnWizards 的安装目录的 PSDemo 目录下自带了部分 PascalScript 的 Demo,用户可参考其代码。

以上两目录的内容均在不断完善中,也欢迎用户自行编写脚本来扩充 CnWizards 的功能。

 

怎样编辑脚本?

脚本专家本身并不提供脚本编辑器,您可以使用任何一个文本编辑器来编辑脚本文件,IDE 本身的编辑器就是最好的工具。您只需要在 IDE 编辑器中象编写普通的代码一样编写脚本,就可以利用 IDE 的代码完成和 CnWizards 的代码输入助手来提高效率。需要注意的是:如果您在脚本中 uses 了 ToolsAPI,您需要在 IDE 的搜索路径中加入 ToolsAPI 单元所在的目录;如果您 uses 了 CnWizUtils 等在 PSDeclEx 目录下声明的文件,同样也需要在 IDE 的搜索路径中加入 PSDeclEx 目录。

 

怎样处理脚本事件与参数?

一个脚本可被手工调用,也可设置为在触发某事件时调用。脚本文件内部可以使用预设置的全局对象 Event 来获得此脚本被调用时的事件类型和参数。Event 是一 TCnScriptEvent 类型的对象,其属性 Mode 值是 TCnScriptMode,对应于上文的 smManual, smIDELoaded, smBeforeCompile, smAfterCompile, smFileNotify, smSourceEditorNotify, smFormEditorNotify,因此在脚本开头检查 Event 对象的 Mode 值便可确定此脚本是被何种事件触发的。对于某些类型的事件,它们被触发时脚本可能需要更多的信息,比如编译成功与否、当前文件名、当前编辑器等,对于此等事件,Event 对象在脚本运行前被初始化成了 TCnScriptEvent 类的子类如 TCnScriptSourceEditorNotify 等,用户在脚本中可通过类型强制转换将 Event 转换成需要的子类来获取参数。

更详细的说明,请参考 PSDeclEx 目录下的 ScriptEvent 文件以及例子中的 FormEventDemo.pas 等文件。

 

相关主题

IDE 专家基本操作

IDE 专家设置

关于 IDE 专家包

 


(C)版权所有 2001-2014 CnPack 开发组