2017-08-16 21 views
1

これまでは、簡単にするために、DesingtimeとRuntimeのコンポーネントを作成していましたが、コンポーネントウィザードを使用しました。それはうまく動作しますが、私は実行時とdesigntimeを分離する方が良いことがわかります。Delphiコンポーネント作成の設計時

enter image description here

Frazioni.bplのみパッケージ化し、それが中にはuFraction.pasと呼ばれるPASファイルが格納されているRuntineです。これは、分画のためのユーティリティであり、このようなクラスの内部で持っている:

type 
TFraction = class(TComponent) 
end; 

dclFrazioniではなく、唯一の設計時です。私はDelphiとニックで以上のコードを読んでいると言う:設計時パッケージのために行うには

まず最初はそのを設定することです[OK]を 句

が必要ですが、私はこれをどのように行うのですか?私はランタイムとデシグネタイムをリンクする必要があることを理解していますが、どうですか?私はFrazioni.bplを構築しましたが、私が右クリックしてdclFrazioniをクリックすると参照を追加する必要がありますが、私はどのように分かりません。

デザインキットのみのパッケージには、Registerの手順があります。したがって、基本的に:

  • Frazioni.bpl =必要なクラスを含む1つ(または複数)のpasファイルを含むランタイムは、TComponentから継承されます。
  • dclFrazioni.bpl =設計時の登録手続き

を含むPASファイルと私はそれらをリンクする方法を知らないので、私は失われています。

+0

これは、デザイン面にドロップするコンポーネントであってはなりません。 –

+1

コンポーネント/プロパティエディタ、IDEアドオンなど、実際のデザイン時のみのコードを持っている場合にのみ、別のランタイムパッケージとデザインタイムパッケージが必要です。単一のランタイム+デスティネーションパッケージがあれば、 (単に 'RegisterComponents()'を呼び出すのはカウントされません。ランタイムパッケージに実装されているためです)。 –

+1

ランタイムをコンパイルしてビルドするだけで、dclを右クリックし、「参照の追加」をクリックし、「C:\ Users \ Public \ Documents \ RAD Studio \ xx.x \ Dcp」に移動します。 –

答えて

5

designtimeパッケージのプロジェクトファイルのrequiresセクションにランタイムパッケージの名前を追加することによって、designtimeパッケージをランタイムパッケージにリンクすることができます。

これを行うには、dclFrazioni.bplを右クリックし、Project ManagerウィンドウからView Sourceをクリックします。
requiresセクションにFrazioni(実行時パッケージ)を追加できます。

結果のファイルは、以下のように見えるはずです。

package dclFrazioni; 

{$R *.res} 
.... 
{$IMPLICITBUILD OFF} 

requires 
    rtl, 
    vcl, 
    Frazioni; 

contains 
    (units...); 

end. 
+1

ありがとう、これは働いた! :) –

3

あなたのスクリーンショットでは、と呼ばれるツリービュー項目がデザインパッケージのために必要示しています。 IIRCを右クリックし、[参照の追加]を選択します。次に、実行時パッケージを選択します。

+0

私はすでにそれを行っていましたが、追加するbplファイルが見つかりません –

+0

あなたの思い出しは正しいです。これにより、[その他の回答](https://stackoverflow.com/a/45719698)と同じように、プロジェクトソースを直接変更する必要はありません。 –

+0

コンパイルしますか?それ以外の場合、DCPファイルはまったくありません。 次に、 'C:\ Users \ Public \ Documents \ RAD Studio \ 11.0 \ Dcp'の周りのDCPファイルを見つけることができますか? –

関連する問題