Delphiで’DesignIntf’が見つかりませんと表示されたときの対処(Delphi 10.3)

投稿者: | 2019年8月12日

Delphiでコンポーネントをインストールするとき、ときどき見るエラーです。
この問題とその対応方法については、かなり以前からWeb上で見つけることができます。今更という感じもしますが、他のサイトの情報の中には部分的にしか書かれていない場合もあるため、まとめてみようと思います。

タイトルのエラーが発生したとき、やることは以下の3つです。

1. パスを通す

まずやることは、ソースのあるフォルダのパスを検索パスに追加することです。
[プロジェクト]-[オプション]で、Delphiコンパイラのオプションを表示させます。検索パスに、以下の2つを追加させます。

$(DELPHI)\source\ToolsAPI
$(DELPHI)\source\ToolsAPI\ja

2. パッケージに designide.dcp をインクルードする

パッケージのRequiresに、designideを追加します。
プロジェクトツリーのパッケージ名を右クリックし、コンテキストメニューから[ソースを表示]でパッケージのソースを表示させます。
パッケージを右クリック

ソースの中程に、requeresという部分があるため、ここにdesignideを追加します。
また、designideはWin32のみで動作するので、以下のように{$IFDEF WIN32}、{$ENDIF}で囲みましょう。

requires
  rtl,
  vcl,
  {$IFDEF WIN32}  // 追加
  designide,      // 追加
  {$ENDIF}        // 追加
  vclimg;

3. DesignIntfなどを{$IFDEF WIN32}、{$ENDIF}で囲む

以下のように、usesに書かれているDesignIntfを、{$IFDEF WIN32}、{$ENDIF}で囲みます。
また、プロパティエディタなどの設計時のみ必要なユニットも、同じように囲みます。

uses
  MzGrid,
  {$IFDEF WIN32}
  DesignIntf, MzGridPropEditor,  // DesignIntf、プロパティエディタを囲む
  {$ENDIF}
  System.Classes;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('MIZU', [TMzGrid]);
  {$IFDEF WIN32}
  RegisterComponentEditor(TCustomMzGrid, TMzGridEditor);  // コンポーネントエディタも設計時のみなので囲む
  {$ENDIF}
end;

あとは、パッケージをコンパイルしてエラーが発生しなければ、インストールできるはずです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)