下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、歡迎訪問 Freekaoyan 論文站 Protel 二次開發(fā)從入 門到精通歡迎訪問 Freekaoyan 論文站第七章 Protel 服務(wù)器開發(fā)1. 前言在前面的章節(jié)中,我們使用了很多 API 過程和函數(shù)來開發(fā)各種附加的服務(wù) 器,并編寫了相應(yīng)的進程來實現(xiàn)各種不同的功能。我們能否開發(fā)出象原理圖或 印制板一樣的服務(wù)器,或開發(fā)一個簡單的文本服務(wù)器呢?在本章,我們將分析SDK提供的一些服務(wù)器代碼,來揭開服務(wù)器開發(fā)的奧 秘。2. 一個簡單的對話框 CommonDialog process2.1 服務(wù)器功能本服務(wù)器功能很簡單,僅是彈出一個顏色對話框,您可以選擇一個新的顏 色,選擇好后,退出對話框,系統(tǒng)使
2、用一個 ShowInfo 過程來顯示新的顏色值。 此程序主要功能是示范如何使用 MessageRouter_Se ndComma ndToModi來調(diào)用 Client 服務(wù)器中 RunCommonDialo進程。代碼請見 /SAMPLES/NO7/Servers/CommonDialog process。2.2 代碼分析2.2.1 main 單元在 main 單元中,定義一個 TRunADialogProcess 類,從 TServerModule 繼 承。過程 CreateServer 創(chuàng)建 TRunADialogProcess 類實例并加載命令表。代碼 實現(xiàn)如下:Procedure Cre
3、ateServer;BeginServerModule :=TRunADialogProcess.Create;LoadCommandLauncherTable;End;LoadCommandLauncherTabiei程定義在單元 ComTable中。2.2.2 增加進程到命令表在ComTable單元中,增加一個進程到命令表中,代碼實現(xiàn)如下:Procedure LoadCommandLauncherTable;BeginCreateCommandLauncherTable;CommandLauncherTable_State_AddCommand( RunADialogProcess,Com
4、mand_RunADialogProcess);SortCommandLauncherTable;End;Comma ndLa un cherTable_State_AddComma過程通過提供進程的名稱和進程 函數(shù)指針來增加一個進程入口到命令表中。命令表綁定一個進程的名稱到在運 行時實現(xiàn)進程的實際函數(shù)。只要一個進程在服務(wù)器內(nèi)被調(diào)用,為查找實際的函 數(shù)指針,此命令表就會被查找,如果在表中沒有查找到進程的名稱,將不會執(zhí) 行什么動作。223 Comma nds 單元主程序Command_RunADialogProces代碼實現(xiàn)如下:Procedure Command_RunADialogProce
5、ss(Window : TServerWindow;Parameters : PChar);BeginRunADialogProcess;End;下面,只要實現(xiàn) RunADialogProcess 過程就可以了, RunADialogProcess 過 程定義也很簡單。Procedure RunADialogProcess;VarP: PChar;S: TString;Color : Integer;BeginGetMem(P, 4048); / 申請內(nèi)存。SetState_Parameter(P,Dialog,Color);/SetState_Parameter 過程插入一個參數(shù)到指定的參數(shù)
6、文本塊中。過程共 有三個參數(shù),分別為P,Nmae和Value。/P指定到一個參數(shù)文本塊的指針,Name指定要被插入的參數(shù)名稱,Value指 定要被插入的參數(shù)值。SetState_Parameter(P,Color, 0);MessageRouter_SendCommandToModule(Client:RunCommonDialog,P,4048 ,0);MessageRouter_Se ndComma ndToModul函數(shù)運行在指定模塊內(nèi)的指定的過 程,如果成功則返回 T ru e ,否則返回 Flase,/ 此函數(shù)允許一個服務(wù)器來運行一個在其它服務(wù)器中的進程,為了運行進 程,需要指定目標
7、文檔對象的窗體句柄,/ 例如,如果您從文本服務(wù)器運行一個進程,且當(dāng)前打開兩個文本文件, 您需要使用此參數(shù)來指定哪一個文本文檔要/ 被操作,如果沒有文檔被此服務(wù)器支持,參數(shù) EditorWindow 應(yīng)該被設(shè)置 為 cProcessWindow_DontCare,如果目標服/ 務(wù)器沒有啟動,此函數(shù)會自動啟動目標服務(wù)器。/ 如果此模塊的標識符沒有提供在 Process 進程參數(shù)中,它默認為Clie nt,舉例來說,CreateNewDocume nt被認/ 為是 Client:CreateNewDocument 。/ 進程能使用 Parameter 參數(shù)來返回結(jié)果,例如Client:RunComm
8、onDialog 進程運行一個對話框并且通過 Parameter 返回結(jié) 果。/ 函數(shù)共有四個參數(shù),如下所示:/ 參數(shù)類型描述/ProcessTString 指定完整的進程名稱,舉例來說, Macro:RunMacro, 此參數(shù)對大小寫不敏感。/ParametersPChar 指定進程參數(shù)內(nèi)存的指針 (空值終止 ) ,此參數(shù)對大小寫 不敏感。/MaxParameterSizeInteger 指定為參數(shù)分配的內(nèi)存大小。/EditorWindowHWnd 目標文檔對象窗體句柄。GetState_Parameter(P,Result,S);/從參數(shù)塊P中檢索Result,并放到字符串S中,如果為True,說明有返 回值,如果為 False 說明無返回值。/GetState_Parameter 函數(shù)從參數(shù)塊中檢索一個參數(shù)值,如果找到返回 True,否則返回False,參數(shù)以一個空終止符結(jié)尾的數(shù)組形式被傳遞到進程 中。If (S = True) ThenBeginGetState_Parameter(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年樓梯踏步施工協(xié)議
- 2024年汽車租賃公司掛靠車輛租賃合同及客戶權(quán)益保障范本3篇
- 2024年度智能語音識別軟件定制委托開發(fā)合同3篇
- 煉鐵廠煙塵課程設(shè)計
- 2024年網(wǎng)絡(luò)安全防護與數(shù)據(jù)處理合同
- 2024年版公司職員聘用協(xié)議書(2)2
- 研學(xué)旅行歷史類課程設(shè)計
- 2024年設(shè)備安裝與維護服務(wù)協(xié)議
- 有機肥發(fā)酵課程設(shè)計
- 2024年汽車維修廠租賃合同及維修技術(shù)支持及配件供應(yīng)合同3篇
- 食品安全檢測合作合同
- 養(yǎng)殖場轉(zhuǎn)讓寫合同范例
- 自然辯證法論述題146題帶答案(可打印版)
- 離婚協(xié)議書模板可打印(2024版)
- 七年級語文下冊專項練習(xí)知識(對聯(lián))
- 廣東省廣州市海珠區(qū)2023-2024學(xué)年五年級上學(xué)期1月期末語文試題
- 2016-2017學(xué)年天津市部分區(qū)九年級(上)期末化學(xué)試卷
- 培智五年級上次數(shù)學(xué)期末考試題
- 四川省自貢市2022-2023學(xué)年八年級上學(xué)期期末語文試題
- GB/T 3216-2016回轉(zhuǎn)動力泵水力性能驗收試驗1級、2級和3級
- 幼兒園中班個人保教工作總結(jié)
評論
0/150
提交評論