📄 rebwiz.pas
字号:
unit RebWiz;
interface
uses
ExptIntf, Windows, RebWForm, Classes, Menus;
type
TRebuildWiz = class (TIExpert)
private
OriginalBuildClick: TNotifyEvent;
BuildMenu: TMenuItem;
public
constructor Create;
destructor Destroy; override;
procedure BuildClick (Sender: TObject);
// standard methods
function GetStyle: TExpertStyle; override;
function GetName: string; override;
function GetAuthor: string; override;
function GetComment: string; override;
function GetPage: string; override;
function GetGlyph: HICON; override;
function GetState: TExpertState; override;
function GetIDString: string; override;
function GetMenuText: string; override;
procedure Execute; override;
end;
procedure Register;
implementation
uses
Forms, Dialogs;
function TRebuildWiz.GetStyle: TExpertStyle;
begin
// show up in the Help menu
Result := esStandard;
end;
function TRebuildWiz.GetName: String;
begin
// official name
Result := 'Rebuild Wizard'
end;
function TRebuildWiz.GetAuthor: string;
begin
Result := 'Marco and Tim';
end;
function TRebuildWiz.GetComment: String;
begin
Result := 'Rebuild Wizard';
end;
function TRebuildWiz.GetPage: string;
begin
Result := '';
end;
function TRebuildWiz.GetGlyph: HICON;
begin
Result := 0;
end;
function TRebuildWiz.GetState: TExpertState;
begin
// always enabled, never checked
Result := [esEnabled];
end;
function TRebuildWiz.GetIDString: String;
begin
// must be unique
Result := 'DDHandbook.RebuildWizard'
end;
function TRebuildWiz.GetMenuText: String;
begin
// the text of the menu item
Result := '&Rebuild Wizard...'
end;
procedure TRebuildWiz.Execute;
begin
// the actual code
if not Assigned (RebWizForm) then
RebWizForm := TRebWizForm.Create (nil);
RebWizForm.Show;
end;
// menu customization methods
constructor TRebuildWiz.Create;
begin
inherited;
// change the event handler of the Build menu item
BuildMenu := Application.MainForm.
FindComponent ('ProjectBuildItem') as TMenuItem;
OriginalBuildClick := BuildMenu.OnClick;
BuildMenu.OnClick := BuildClick;
end;
destructor TRebuildWiz.Destroy;
begin
// restore the event handler
BuildMenu.OnClick := OriginalBuildClick;
inherited;
end;
procedure TRebuildWiz.BuildClick (Sender: TObject);
begin
if MessageDlg ('Do you want to open the Rebuild Wizard',
mtConfirmation, [mbYes, mbNo], 0) = idYes then
begin
Execute;
if MessageDlg ('Do you want to Rebuild All the projects now?',
mtConfirmation, [mbYes, mbNo], 0) = idYes then
RebWizForm.BtnCompileAllClick (self);
end
else
OriginalBuildClick (Sender);
end;
procedure Register;
begin
RegisterLibraryExpert(TRebuildWiz.Create);
end;
initialization
RebWizForm := nil;
finalization
if Assigned (RebWizForm) then
RebWizForm.Free;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -