IDE にインストールされた設計時パッケージ内のコンポーネントで定義されたスタイルの使用

提供: RAD Studio
移動先: 案内検索

スタイルを使った FireMonkey アプリケーションのカスタマイズ への移動


お使いの FireMonkey ユニットに定義されたカスタム コンポーネントで新しいスタイルを定義することができます。そのユニットにこれらのカスタム コンポーネンを登録し、このユニットからパッケージをビルドすることができます。

これらのカスタム コンポーネントを登録しているこの設計時パッケージを IDE にインストールすることができます。IDE を起動して、このパッケージに含まれている登録済みコンポーネントを何も使用していないプロジェクトを読み込むと、IDE はデフォルトでコンポーネントのスマート(遅延)読み込みを使用します。そのため、このパッケージ内のカスタム コンポーネントはメモリ内に読み込まれません。その結果、これらのコンポーネントで定義されたスタイルは IDE には認識されません。スタイルは、StyleName の文字列を使ってスタイルブック内で明示的に参照されます。そのため、カスタム コンポーネントに定義された StyleName を使用しても、そのカスタム コンポーネントは、読み込まれたプロジェクトで使用されていなければ、IDE には読み込まれません。そのようなプロジェクトを開くと、次のようなエラーが発生します。

Error reading <StyleBook1.ResourcesBin>: Class <ComponentClass> not found. 
Ignore the error and continue?
NOTE: Ignoring the error may cause components to be deleted or property
values to be lost.   

このようなエラー メッセージを無視した場合、報告されたスタイルはプロジェクトでは認識されません。そのようなプロジェクトをビルドし、得られたアプリケーションを実行すると、アプリケーションでこのスタイルにアクセスしようとした場合に実行時エラーが発生するおそれがあります。

これらのカスタム コンポーネントの場合は、コンポーネントが登録されているパッケージのスマート読み込みを明示的に無効にする必要があります。

パッケージに登録されているコンポーネントのスマート読み込みを無効にするには、

ForceDemandLoadState(dlDisable)

パッケージの Register 手続きの実装時に呼び出します(そのパッケージの読み込み状態を明示的に設定する必要がある場合)。

設計時パッケージのスマート(遅延)読み込みは次のように動作します。IDE では、デフォルトで、IDE にインストールされている設計時パッケージのスマート読み込みを使用します。IDE が起動しても、インストールされているすべてのパッケージが IDE にすぐに読み込まれるわけではありません。最初は、プロジェクト グループで明示的に使用されているインストール済みのパッケージ コンポーネントだけが IDE に読み込まれます。読み込まれなかったパッケージは、必要に応じて自動的に読み込むことができます。たとえば、[ツール パレット]からフォーム デザイナにコンポーネントをドラッグすると、このコンポーネントが登録されているパッケージが IDE に読み込まれます。スマート読み込みは、IDE の起動時間の短縮やメモリ使用量の軽減に使用されます。

関連項目