腳本擴展專家

腳本擴展專家

該專家使用 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 開發組