Delphi向导制作基本介绍 |
|
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
本文目的:
介绍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 發送簡訊給我 |
|
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
|
阿子
站務副站長 發表:120 回覆:230 積分:201 註冊:2002-03-18 發送簡訊給我 |
Justmade 兄
您先看看這一篇文章
http://forum.vclxx.org/topic.php?TOPIC_ID=8466&FORUM_ID=40&CAT_ID=7
若是有問題可以再來討論,有關OTA 的入門介紹。
里面就有一段提到
------
從思考取勝一切~q |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |