特に HELP メニューにメニュー項目を追加し、パッケージのアンロード時にメニュー項目を削除し、項目の有効化/無効化を処理する場合は、このウィザード コードが役立つ場合があります。GExperts のドキュメントにスターター プロジェクトとして示されているサンプル ウィザード コードを使用し、少し良いスターター プロジェクトとしてここに投稿しました。このコードを取得して拡張するだけで、非常に迅速に開始できます。
https://bitbucket.org/wpostma/helloworldwizard/
「ウィザード」とは、IOTAWizard と IOTAMenuWizard を実装した、IDE にメニューが追加された「単純な IDE エキスパート」のことです。このアプローチには多くの利点があり、GExperts ウィザードが作成される方法です。
コードの中核はこのスターター ウィザードであり、パッケージ (DPK) に入れてインストールし、IDE に登録する必要があります。
// "Hello World!" for the OpenTools API (IDE versions 4 or greater)
// By Erik Berry: http://www.gexperts.org/, eberry@gexperts.org
unit HelloWizardUnit;
interface
uses ToolsAPI;
type
// TNotifierObject has stub implementations for the necessary but
// unused IOTANotifer methods
THelloWizard = class(TNotifierObject, IOTAMenuWizard, IOTAWizard)
public
// IOTAWizard interface methods(required for all wizards/experts)
function GetIDString: string;
function GetName: string;
function GetState: TWizardState;
procedure Execute;
// IOTAMenuWizard (creates a simple menu item on the help menu)
function GetMenuText: string;
end;
implementation
uses Dialogs;
procedure THelloWizard.Execute;
begin
ShowMessage('Hello World!');
end;
function THelloWizard.GetIDString: string;
begin
Result := 'EB.HelloWizard';
end;
function THelloWizard.GetMenuText: string;
begin
Result := '&Hello Wizard';
end;
function THelloWizard.GetName: string;
begin
Result := 'Hello Wizard';
end;
function THelloWizard.GetState: TWizardState;
begin
Result := [wsEnabled];
end;
end.
登録コードは上記に示されていませんが、上記のリンクからダウンロードすると、独自の「Reg」(登録) ユニットに含まれています。 チュートリアルのリンクは EDN here にあります。