2012-04-24 28 views
5

Delphi 7Delphi 2006のコンポーネントで作業しています。ここでは、コンポーネントが自動的にドロップされるプロジェクトのファイルに追加する必要があるユニットを使用しています。ユニットを自動的にプロジェクトに追加

enter image description here

誰もが私はいかなる形で私のコンポーネントをドロップすると、プログラムのプロジェクトファイルにユニットを追加する方法を教えてもらえます:エウレカログインが自動的にプロジェクトファイルにユニット「EXCEPTIONLOG」を追加します方法のよう プロジェクト?

+2

ソースユニットはすべてのケースで自動的に追加されると思います。確かに彼らが知られているときだけ、彼らはすでにデルファイのパスに含まれていた(結果は何か)。 – TLama

+2

@Tlamaでは、コンポーネントユニットに*フォーム*または*データモジュール*ユニットが自動的に追加されます。彼らは自動的に*プロジェクト*に追加されません。それはユーレカログが特別なことです。 –

+0

@Rob、それは私が誤解した次の質問です。私はもっ​​と注意を払う必要があります。ありがとう! – TLama

答えて

6

ほとんどの場合、Open Tools APIを使用する必要があります。

また、ユニットの追加をトリガーするためにコンポーネントにTSelectionEditorを書き込む必要があるかもしれません(RequiresUnitメソッドを試します)。

有効なプロジェクト(下のコード)にユニットを追加する簡単な方法はありますが、これはアクティブなプロジェクト(フォームが属するプロジェクトでない可能性があります)に追加するだけです。またuses節の最後にユニットを追加します。

uses 
    ToolsAPI; 

var 
    currentProject: IOTAProject; 
begin 
    currentProject := GetActiveProject(); 
    currentProject.AddFile('MyUnit.pas', True); 

それは単位を解析し、uses節を変更することができ、クラス(TUsesManager)が含まれているため、あなたはGExperts source codeを確認することができます。

+0

'AddFile'は、' MyUnit.pas''の中の 'MyUnitを使用するような項目を追加します。これはライブラリコンポーネントには適さないでしょう。コンポーネントは、そのファイルの参照ではなく、ユニット参照を追加する必要があります。 –

+0

@Robあなたが言うように。 OTAがそうすることができるかもしれないことを示す例に過ぎませんでした。しかし、私は適切な方法を見つけられませんでした。だから私はGExpertsの出典を述べた。 –

+0

+1:TUsesManagerについて言及しています – menjaraz

0

奇数

私のデフォルトのdprを設定して、結果として何も表示されなかったので、私のツールボックスは非常に空でした。だから、それが私のツールボックスにあれば、それはdprにありました - あなたは何か問題がありますか?通常はツールボックスにあり、すでにdprに入っています。

+0

私のコンポーネントは 'dpr'の' unit'を必要とし、 'user'を入れてそこに置くことはできません。同じように自動化する必要があります – PresleyDias

+0

私のコピーしたデルファイがなければ、もちろん、dprに追加する必要があるユニットの条件を設定することができます。また、.pasファイルに追加される他のユニットがない場合は、「ユニットxをdprファイルに追加してください".. – BugFinder

0

[プロジェクト]> [ユーレカログ] [ユーレカログ]を選択して無効にします。

+5

私はあなたが私の質問をしなかったと思う、私はユーレカのログが' dpr'に 'ExceptionLog'を追加するように意味します。どうすればいいのですか? – PresleyDias

関連する問題