4D v16.3コンポーネントのインストールと互換性 |
|||||||||||||||||||||||||||||||||||||
|
4D v16.3
コンポーネントのインストールと互換性
コンポーネントのインストールと互換性
4Dデータベースにコンポーネントをインストールするには、ホストデータベースのComponentsフォルダーにマトリクスデータベースのストラクチャーをコピーします。Components フォルダーは以下二つの場所に配置できます:
これに関する詳細はPlugInsおよびComponentsフォルダーの場所を参照してください。 4D はComponentsフォルダー内で、.4db ( インタープリターマトリクスデータベース)、 .4dc ( コンパイル済みマトリクスデータベース) または .4dbase( パッケージタイプのマトリクスデータベース) マトリクスデータベースを探します。データファイルやユーザーストラクチャファイル (.4DA) などは無視されます。これらのマトリクスデータベースのショートカットやエイリアスを使用できます。これはコンポーネントの開発時に便利です。マトリクスデータベースに対する更新はすぐにホストデータベースで有効になります。 Components フォルダーには、(xliff, ピクチャーなど) コンポーネントの動作に必要なカスタムファイルやフォルダーを置くことができます。他方、プラグインやComponent サブフォルダーを置くことはできません。これらが置かれていた場合、4D はそれらを無視します。 インタープリターモードで動作するホストデータベースは、インタープリターまたはコンパイル済みどちらのコンポーネントも、またUnicode モードであっても無くても、使用できます。一つのホストデータベースに、インタープリターとコンパイル済み両方のコンポーネントをインストールできます。しかし、複数のコンパイル済みコンポーネントが存在する場合、それらは同じUnicode のモードで実行されなければなりません。 コンパイルモードで実行されるホストデータベースでは、インタープリターのコンポーネントを使用できません。この場合、コンパイル済みコンポーネントのみが利用可能です。またUnicode のモードはホストデータベースとコンポーネントで同じでなければなりません。 以下の表でこの点についてまとめます:
(*) 複数のコンパイル済みコンポーネントがインストールされる場合、それらは同じUnicode モードで動作しなければなりません。 注:
コンポーネント間及びホストデータベースとコンポーネント間の相互作用についてはコンポーネントとホストデータベースの相互作用を参照してください。 Mac OS で開発されたインタープリターコンポーネントをWindows 環境にインストールすること、及びその逆が可能です。他方、コンパイルされたコンポーネントは、コンパイルされたのと同じプラットフォームでのみ利用可能です。両プラットフォームで利用可能 サーバーデータベースにインストールされたコンポーネントは、プラグインと同様のメカニズムを使用して、自動でクライアントマシンに転送されます。 クライアント/ サーバーモードで、クライアント側のコンポーネントのコピーを更新することはお勧めできません。変更はローカルに保存され、サーバーマシンのコンポーネントは更新されません。 コンポーネントはホストデータベースが開かれるときにロードされます。
コンポーネントは、ホストデータベースを開いたときまたは閉じたときに、自動的に4Dコードを実行することができます。これによって例えば、ホストデータベースに関連する設定やユーザーの状態などを読み出し・保存することができます。 初期化やデータベースを閉じるコードの実行は、 On Host Database Event データベースメソッド を使用して行われます。詳細な情報に関しては、4D Language Reference マニュアル内のこのコマンドの詳細を参照して下さい。 セキュリティ上の理由から、このデータベースメソッドを使用可能にするためには、その実行をホストデータベースで明示的に許可する必要があります。詳細に関しては、 35P "4D components" を参照して下さい。 セキュリティ上の理由から、このデータベースメソッドを実行するためには、ホストデータベースにおいてその実行が明示的に認証されなければなりません。このためには、データベース設定画面の セキュリティページ ページ内の、"コンポーネントの "On Host Database Event" メソッドを実行"のオプションにチェックを入れます:
他の共有オブジェクトと異なり (共有及び非共有オブジェクト参照)、共有プロジェクトメソッドはデータベースに" 物理的に"存在します。つまりコードの実行時に作成されるわけではありません。 ゆえに、コンポーネントの共有プロジェクトメソッドと、ホストデータベースのプロジェクトメソッドが同じ名前を持つと、名前の衝突が発生します。この場合、ホストデータベースのコンテキストでコードが実行されると、ホストデータベースのメソッドが呼び出されます。これはつまり、コンポーネントメソッドをカスタムメソッドで"マスク" して、例えば異なる機能を実装することが可能であることを示しています。 このマスキングは、ホストデータベースのコンパイル時に警告によって通知されます。 注: 2つのコンポーネント間で共有メソッド名に衝突があった場合、ホストデータベースをコンパイルする際にエラーが生成されます。
|
プロパティ
プロダクト: 4D
履歴
ARTICLE USAGE
デザインリファレンス ( 4D v16) |
|||||||||||||||||||||||||||||||||||