在Delphi中编写一个Menu Wizard也是相当的简单,在实现IOTAWizard接口的同时,也实现IOTAMenuWizard接口即可。
unit MenuWizardDemoUnit;

interface

uses SysUtils, ToolsAPI, Dialogs;

type
TMenuWizardDemo
=
class
(TNotifierObject, IOTAWizard, IOTAMenuWizard)
public

...
{ IOTAWizard }
function GetIDString:
string
;
function GetName:
string
;
function GetState: TWizardState;
procedure Execute;


...
{ IOTAMenuWizard }
function GetMenuText:
string
;
end;

procedure Register;

implementation

uses WizardForm, Forms;

resourcestring
FName
=
'
MenuWizardDemo
'
;
FAuthor
=
'
Chris Mao
'
;
FPageName
=
'
Wizards
'
;
FComment
=
'
This is comment.
'
;

//
Wizard entry point
procedure Register;
begin
ToolsAPI.RegisterPackageWizard(TMenuWizardDemo.Create
as
IOTAWizard);
end;


...
{ TMenuWizardDemo }

//
================== IOTAWizard ===================================
procedure TMenuWizardDemo.Execute;
begin
ShowMessage(
'
This is Menu Wizard Demo.
'
);
end;

function TMenuWizardDemo.GetIDString:
string
;
begin
Result :
=
Format(
'
%s.%s
'
, [FAuthor, FName]);
end;

function TMenuWizardDemo.GetName:
string
;
begin
Result :
=
FName;
end;

function TMenuWizardDemo.GetState: TWizardState;
begin
Result :
=
[wsEnabled];
end;

//
================== IOTAMenuWizard ===================================
function TMenuWizardDemo.GetMenuText:
string
;
begin
Result :
=
'
Menu Wizard Demo
'
;
end;

end.
unit MenuWizardDemoUnit;
interface

uses SysUtils, ToolsAPI, Dialogs;
type
TMenuWizardDemo
=
class
(TNotifierObject, IOTAWizard, IOTAMenuWizard)
public

...
{ IOTAWizard }
function GetIDString:
string
;
function GetName:
string
;
function GetState: TWizardState;
procedure Execute;

...
{ IOTAMenuWizard }
function GetMenuText:
string
;
end;
procedure Register;
implementation
uses WizardForm, Forms;
resourcestring
FName
=
'
MenuWizardDemo
'
;
FAuthor
=
'
Chris Mao
'
;
FPageName
=
'
Wizards
'
;
FComment
=
'
This is comment.
'
;
//
Wizard entry point
procedure Register;
begin
ToolsAPI.RegisterPackageWizard(TMenuWizardDemo.Create
as
IOTAWizard);
end;

...
{ TMenuWizardDemo }

//
================== IOTAWizard ===================================
procedure TMenuWizardDemo.Execute;
begin
ShowMessage(
'
This is Menu Wizard Demo.
'
);
end;
function TMenuWizardDemo.GetIDString:
string
;
begin
Result :
=
Format(
'
%s.%s
'
, [FAuthor, FName]);
end;
function TMenuWizardDemo.GetName:
string
;
begin
Result :
=
FName;
end;
function TMenuWizardDemo.GetState: TWizardState;
begin
Result :
=
[wsEnabled];
end;
//
================== IOTAMenuWizard ===================================
function TMenuWizardDemo.GetMenuText:
string
;
begin
Result :
=
'
Menu Wizard Demo
'
;
end;
end.
编译包并安装,会在Delphi IDE的Help菜单中看到我们新增加的一个菜单项,其标题就是我们在GetMenuText方法中返回的字串,当我们点击这个菜单项时,会执行Execute方法中的代码。
就是这么简单!
本文介绍如何在Delphi中创建简单的菜单向导。通过实现IOTAWizard和IOTAMenuWizard接口,可以在IDE的帮助菜单中添加自定义菜单项,并设置点击行为。
3307

被折叠的 条评论
为什么被折叠?



