4D v13.4コンポーネントのインストールと互換性 |
|||||||||||||||||||||||||||||||||||||
|
4D v13.4
コンポーネントのインストールと互換性
|
インタプリターコンポーネント | コンパイル済みコンポーネント | ||||
Unicode | 非Unicode | Unicode | 非Unicode | ||
インタープリターホストデータベース | Unicode | X | X | X (*) | X (*) |
非Unicode | X | X | X (*) | X (*) | |
コンパイル済みホストデータベース | Unicode | - | - | X | - |
非Unicode | - | - | - | X |
(*) 複数のコンパイル済みコンポーネントがインストールされる場合、それらは同じUnicode モードで動作しなければなりません。
注:
コンポーネント間及びホストデータベースとコンポーネント間の相互作用についてはコンポーネントとホストデータベースの相互作用を参照してください。
Mac OS で開発されたインタープリターコンポーネントをWindows 環境にインストールすること、及びその逆が可能です。他方、コンパイルされたコンポーネントは、コンパイルされたのと同じプラットフォームでのみ利用可能です。両プラットフォームで利用可能
するためには、両プラットフォーム用にコンパイルします。
サーバーデータベースにインストールされたコンポーネントは、プラグインと同様のメカニズムを使用して、自動でクライアントマシンに転送されます。
クライアント/ サーバーモードで、クライアント側のコンポーネントのコピーを更新することはお勧めできません。変更はローカルに保存され、サーバーマシンのコンポーネントは更新されません。
コンポーネントはホストデータベースが開かれるときにロードされます。
ARRAY TEXT($arrComponents_Txt;0)
COMPONENT LIST($arrComponents_Txt)
If(Find in array($arrComponents_Txt;"ComponentA")>0) // コンポーネントAは存在しなくてもよい
EXECUTE METHOD("ComponentAMethod")
End if
他の共有オブジェクトと異なり (共有及び非共有オブジェクト参照)、共有プロジェクトメソッドはデータベースに" 物理的に"存在します。つまりコードの実行時に作成されるわけではありません。
ゆえに、コンポーネントの共有プロジェクトメソッドと、ホストデータベースのプロジェクトメソッドが同じ名前を持つと、名前の衝突が発生します。この場合、ホストデータベースのコンテキストでコードが実行されると、ホストデータベースのメソッドが呼び出されます。これはつまり、コンポーネントメソッドをカスタムメソッドで"マスク" して、例えば異なる機能を実装することが可能であることを示しています。
もちろん、コンポーネントの中でコードが実行されている場合は、コンポーネントのメソッドが呼び出されます。
このマスキングは、ホストデータベースのコンパイル時に警告によって通知されます。
注: 2つのコンポーネント間で共有メソッド名に衝突があった場合、ホストデータベースをコンパイルする際にエラーが生成されます。
プロダクト: 4D
テーマ: 4Dコンポーネントの開発とインストール