6

を使用してプロジェクトに取り組んでおり、Delphi 7特定Delphi 2006のシステム情報を取得するコンポーネントを開発しています。ここでの要件は、コンポーネントがシステムにインストールされた後、IDE に次のようなメニュー項目があることです。

ここに画像の説明を入力

そして、delphi 7このように ここに画像の説明を入力

メニュー項目の追加についてネットで検索しましたが、そのIDEような項目を追加するものは何もありませんEurekaLog。またはのようなアイテムを追加する方法を教えてもらえますEurekaLogmysql?レジストリのどこかにありますか?

4

2 に答える 2

15

メニューを Delphi IDE に追加するには、 Delphi Open Tools APIを使用する必要があります。ここから、次のようなコードを使用して Delphi IDE のメイン メニューにアクセスできます。

LMainMenu:=(BorlandIDEServices as INTAServices).MainMenu;

また

LMainMenu:=(BorlandIDEServices as INTAServices).GetMainMenu;

次に、必要なメニュー項目を追加します。

追加のサンプルについては、これらのリンクを確認してください

于 2012-04-23T08:04:23.057 に答える
4

特に 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 にあります。

于 2012-04-24T23:00:16.493 に答える