📄 initwiz.pas
字号:
unit InitWiz;
interface
uses Windows, ToolsAPI;
type
TWizardWizard = class(TNotifierObject, IOTAWizard, IOTAMenuWizard)
// IOTAWizard methods
function GetIDString: string;
function GetName: string;
function GetState: TWizardState;
procedure Execute;
// IOTAMenuWizard method
function GetMenuText: string;
end;
function InitWizard(const BorlandIDEServices: IBorlandIDEServices;
RegisterProc: TWizardRegisterProc;
var Terminate: TWizardTerminateProc): Boolean stdcall;
var
{ Registry key where Delphi 5 wizards are kept. EXE version uses default, }
{ whereas DLL version gets key from ToolServices.GetBaseRegistryKey }
SDelphiKey: string = '\Software\Borland\Delphi\5.0\Experts';
implementation
uses SysUtils, Forms, Controls, Main;
function TWizardWizard.GetName: string;
{ Return name of expert }
begin
Result := 'WizardWizard';
end;
function TWizardWizard.GetState: TWizardState;
{ This expert is always enabled }
begin
Result := [wsEnabled];
end;
function TWizardWizard.GetIDString: String;
{ "Vendor.AppName" ID string for expert }
begin
Result := 'DDG.WizardWizard';
end;
function TWizardWizard.GetMenuText: string;
{ Menu text for expert }
begin
Result := 'Wizard Wizard';
end;
procedure TWizardWizard.Execute;
{ Called when expert is chosen from the main menu. }
{ This procedure creates, shows, and frees the main form. }
begin
MainForm := TMainForm.Create(Application);
try
MainForm.ShowModal;
finally
MainForm.Free;
end;
end;
function InitWizard(const BorlandIDEServices: IBorlandIDEServices;
RegisterProc: TWizardRegisterProc;
var Terminate: TWizardTerminateProc): Boolean stdcall;
var
Svcs: IOTAServices;
begin
Result := BorlandIDEServices <> nil;
if Result then
begin
Svcs := BorlandIDEServices as IOTAServices;
ToolsAPI.BorlandIDEServices := BorlandIDEServices;
Application.Handle := Svcs.GetParentHandle;
SDelphiKey := Svcs.GetBaseRegistryKey + '\Experts';
RegisterProc(TWizardWizard.Create);
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -