⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rebwiz.pas

📁 Delphi高级开发指南是开发程序的好帮手
💻 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 + -