2017-08-16 12 views
2

現在のプロジェクトのすべてのDFMを一覧表示できるDelphiプラグインを作成したいと思います。プロジェクトで使用されているDFMのリストをどのように作成できますか?

現在のプロジェクトにリンクされているすべてのDFMファイル(およびそのパス)のリストを取得する方法はありますか?

すべてのDFMがリストされている場合は、プロジェクトに関する情報を抽出できます。また、DFMを解析してプロパティを検索するなど、現在のプロジェクトDFMだけを検索することもできます。

私はthis questionを見つけましたが、答えはありましたが、DFMに到達する方法については触れていません。そしてその解決策は、リポジトリ内のすべての.pasファイルを変更する必要があり、実行時に解決策を提示します。私の質問は設計時です。

+1

あなたはプラグインを使用していますので、設計時にフォームを見つけたいと思っていますか? –

+3

IDEアドオンは、[OpenTools API](http://docwiki.embarcadero.com/RADStudio/en/Extending_the_Using_the_Tools_API)を使用して実装されています。このインタフェースは、プロジェクト設定、フォーム、関連ファイル( '。 'ToolsAPI'と関連ユニット、' IOTAProjectGroup'、 'IOTAProject'と' IOTAModule'インターフェース(ちょうどいくつか挙げると)と 'GetActiveProject() 'スタンドアロン機能。周囲を見回すとOpenToolsのチュートリアルがたくさんあります。 –

+0

はい、私は設計時にフォームを探したいと思います。はい、私はIOTAを使用しています。しかし、私はちょうどプロジェクトを作成する方法を見つけた、私はデータを反復処理する方法のチュートリアルを見つけることができませんでした。 – none

答えて

3

ここに、OpenTools APIを使用した簡単な例があります。このユニットを新しい設計専用パッケージに追加し、句にdesignidevclを追加します。パッケージをコンパイルしてインストールします。これは、ヘルプ\ヘルプウィザードの下にメニュー項目 'List DFM'を追加します。これをクリックすると、以下のExecuteメソッドが呼び出されます。

+0

このコードは、小規模なプロジェクトでのみ動作します。 100以上のフォームを持つプロジェクトでは、エラー "フォームシステムエラーコード1158を作成中にエラーが発生しました。"何かがありませんか? – none

関連する問題