全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1833
推到 Plurk!
推到 Facebook!

Delphi向导制作基本介绍

 
wnhoo
高階會員


發表:75
回覆:443
積分:198
註冊:2003-04-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-17 08:38:17 IP:61.155.xxx.xxx 未訂閱
本文目的:   介绍Delphi中向导编写的基本知识,如果你只对界面编写有兴趣的话,那你不适合本文。      好了,说了这么多废话,也应该开题了。不知道你对组件编写了解吗,其实向导的编写跟组建的编写差不多,组件一般继承于TComponent,而向导继承于TIExpert(ExptIntf.pas)。下面讲一讲如何从TIExpert继承编写向导。 先看一下TIExpert的接口声明: TIExpert = class(TInterface)  public  { Expert UI strings }  function GetName: string; virtual; stdcall; abstract;  function GetAuthor: string; virtual; stdcall; abstract;  function GetComment: string; virtual; stdcall; abstract;  function GetPage: string; virtual; stdcall; abstract;  function GetGlyph: HICON; virtual; stdcall; abstract;  function GetStyle: TExpertStyle; virtual; stdcall; abstract;  function GetState: TExpertState; virtual; stdcall; abstract;  function GetIDString: string; virtual; stdcall; abstract;  function GetMenuText: string; virtual; stdcall; abstract;     { Launch the Expert }  procedure Execute; virtual; stdcall; abstract;  end      我们编写的向导,将重载每个对象方法,使Delphi能够调用,即使里面有一些会是无用的代码,下面介绍每个对象方法的作用。    GetStyle - 返回向导的类型,为以下四种类型。 esStandard - 显示在Help的菜单里 esForm - 一个Form的向导 esProject - Project的向导 esAddIn - 如同Code View一样的向导,一般作辅助设计    GetName - 返回向导的名称。    GetAuthor - 返回向导的作者,可使用在esForm和esProject中。    GetComment - 返回向导的解释,可使用在esForm和esProject中。    GetPage - 返回应处在Object Repository中的哪一页,如'New'等,可使用在esForm和esProject中。    GetIDString - 用来表示向导的信息,必须是唯一的。    GetMenuText - 菜单上的文字,包括'&',可使用在esStandard中。    GetGlyph - 图标,可使用在esForm和esProject中。    GetState - 现在向导的状态。    Execute - 向导的调用,只用在esForm、esProject、esStandard中。      重载好这些对象方法以后,当Execute函数有了具体内容后,向导就可以算编写好了,像组件一样也要注册才能使用,向导的注册使用RegisterLibraryExpert这个函数就可以了。   本来应该给一段源代码,但我给出了一个例子,不知道大家满意吗。这个例子是一个向导,是一个生成向导框架的向导(有趣吧),看了这个例子应该对向导的编写有了一定的了解。   在向导里还要调用一些特别的对象,如同平常的Screen一样,在向导编写里有ToolServices对象,它的不少方法用来控制Delphi和取得Delphi的属性,如CloseProject用来关闭当前的工程,用GetUnitCount和GetUnitNames来的到当前的单元列表,这样就能在向导里控制Delphi了。      以上介绍的都是在Delphi中如何建立DCU向导,然而Delphi中还有dll向导,在注册表的HKEY_CURRENT_USER\Software\Borland\Delphi\5.0\Experts键值下列出了当前Delphi使用的Dll向导。那么应该如何建立dll向导呢。先按以上步骤建立一个pas文件,然后生成一个dll文件,里面调用该单元,并输出一个函数声明如下function(ToolServices: TIToolServices; RegisterProc: TExpertRegisterProc; var Terminate: TExpertTerminateProc): Boolean stdcall,并使用ExpertEntryPoint作为函数入口输出,Delphi将调用该函数,并带入相关的一些全局变量,如ToolServices,在该函数中使用RegisterProc过程注册你的向导,就可以在Delphi中使用了。    风花雪月 e梦情缘
------
风花雪月 e梦情缘
附加檔案:30596_zeroexpert.zip
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-17 09:13:59 IP:218.16.xxx.xxx 未訂閱
wnhoo 兄可否簡單解釋一下 TIExpert 是甚麼東西? 功用是甚麼? 應何時使用? 如何將 TIExpert 加到我們的程式碼裡? 謝謝。
wnhoo
高階會員


發表:75
回覆:443
積分:198
註冊:2003-04-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-18 07:45:19 IP:61.155.xxx.xxx 未訂閱
具体说明,程序中写的很清楚!!!    风花雪月 e梦情缘
------
风花雪月 e梦情缘
阿子
站務副站長


發表:120
回覆:230
積分:201
註冊:2002-03-18

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-05-18 10:43:19 IP:61.64.xxx.xxx 未訂閱
Justmade 兄    您先看看這一篇文章 http://forum.vclxx.org/topic.php?TOPIC_ID=8466&FORUM_ID=40&CAT_ID=7 若是有問題可以再來討論,有關OTA 的入門介紹。   里面就有一段提到 
  • 1不要再繼承至TIExpert了啦!用繼承多個ToolsAPI單元中的介面這樣的方式會比較好。
  • 2不要再用ToolsServices這個類別了啦!用BorlandIDEServices會比較好。
<>從思考取勝一切~>
------
從思考取勝一切~q
系統時間:2024-06-02 2:30:07
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!