4D のコンポーネントは、異なるデータベースにインストール可能な、1つ以上の機能を持つ4D オブジェクトの集合です。例えばメールの送信や受信を行い、それらを4Dデータベースに格納するための機能を持ったコンポーネントを作成できます。
4D コンポーネントの作成とインストールは直接4Dを使用して行われます。4Dでは、コンポーネントはプラグインのように扱われ、以下の原則が適用されます:
- コンポーネントは、標準のアーキテクチャーまたはパッケージの形をした通常のストラクチャーファイル ( コンパイルまたは非コンパイル) で構成されます (.4dbase拡張子参照)。
- データベースにコンポーネントをインストールするには、データベースのストラクチャーファイルと同階層に置かれる"Components" フォルダーにコンポーネントをコピーします。ショートカット (Windows) やエイリアス(Mac OS) を使用することもできます。アンインストールするには、コンポーネントをフォルダーから取り除きます。
- コンポーネントで標準のテーブルやデータファイルを使用することはできません。しかし外部データベースのメカニズムを使用すればテーブルやフィールドを作成し、そこにデータを格納したり読み出したりすることができます。外部データベースはメインの4Dデータベースとは独立して存在し、SQLコマンドでアクセスします。詳細はエクスターナルデータベースについてを参照してください。
コンポーネントを作成するには適切なライセンスが必要です。他方コンポーネントを使用するためにインストールするにはライセンス上の制限はありません。
4Dにおける新しいコンポーネント管理メカニズムでは、以下の用語とコンセプトを知っている必要があります:
- マトリクスデータベース: コンポーネント開発に使用する4D データベース。マトリクスデータベースは特別な属性を持たない標準のデータベースです。マトリクスデータベースはひとつのコンポーネントを構成します。
マトリクスデータベースは、コンポーネントを使用するデータベース ( ホストデータベース) のComponents フォルダーにコピーされます。コンパイルされていてもいなくてもかまいません。
- ホストデータベース: コンポーネントがインストールされ、それを使用するデータベース。
- コンポーネント: ホストデータベースのComponentsフォルダーにコピーされ、その内容がホストデータベースで使用されるマトリクスデータベース ( コンパイル済みまたは非コンパイル)。
- プロジェクトフォーム: テーブルにリンクされていないフォーム。プロジェクトフォームは特にコンポーネントの生成に使用できます。プロジェクトフォームに関する詳細はテーブルフォームとプロジェクトフォームを参照してください。
- テーブルフォーム ("標準"フォーム): テーブルに属するフォーム。このタイプのフォームをコンポーネントで使用することはできません。
データベースは" マトリクス" にも" ホスト" にもなりえます。言い換えれば、マトリクスデータベースが1 つ以上のコンポーネントを使用できます。しかしコンポーネントが" サブコンポーネント" を使用することはできません。
コンポーネントとしてインストールされたマトリクスデータベースのプロジェクトメソッドは、デフォルトでホストデータベースからアクセスが可能です。特に:
- 共有プロジェクトメソッドがエクスプローラーのメソッドページページに存在し、かつ ホストデータベースのメソッドから呼び出し可能な場合 (プロジェクト メソッドの共有参照)。 エクスプローラーのプレビューエリアでそれらの内容を選択してコピーすることが可能です。またデバッガーでも内容を見ることができます。しかしそれらをメソッドエディター上で開いたり編集したりすることはできません。
- マトリクスデータベースの他のプロジェクトメソッドはエクスプローラーに現れません。しかしホストデータベースのデバッガーには内容が表示されます。
コンポーネントのプロジェクトメソッドを効果的に保護するには、マトリクスデータベースをコンパイルして、インタプリターコードを含まない
.4dc ファイルとして提供します。コンパイルされたマトリクスデータベースがコンポーネントとしてインストールされると:
- 共有プロジェクトメソッドはエクスプローラーのメソッドページページに表示され、ホストデータベースのメソッドから呼び出すことができます。しかしその内容はプレビューエリアにもデバッガーにも表示されません。
- マトリクスデータベースの他のプロジェクトメソッドは全く表示されません。