Vcl.ImageCollection.TImageCollection
Delphi
TImageCollection = class(TCustomImageCollection)
C++
class PASCALIMPLEMENTATION TImageCollection : public Vcl::Baseimagecollection::TCustomImageCollection
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
class | public | Vcl.ImageCollection.pas Vcl.ImageCollection.hpp |
Vcl.ImageCollection | Vcl.ImageCollection |
説明
TImageCollection コンポーネントは、イメージを保管、拡大/縮小、描画します。
このコンポーネントにより、TWICImage クラスを使用してネイティブ形式のイメージを使用することができます。
TImageCollection を TVirtualImageList コンポーネントと一緒に、イメージ群のソースとして使用します。これらの 2 つのコンポーネントの使用方法については、「イメージ コレクションおよび仮想イメージリスト コンポーネントを持つ高 DPI イメージのサポート」を参照してください。
TImageCollection は、TCustomImageCollection クラスから継承しており、コレクションの基底メソッドを定義しています。
DLL 内での TImageCollection の利用
TImageCollection は、COM ベースのフレームワークである、WIC(Windows イメージ コンポーネント)を使用します。 COM は、常に VCL アプリケーションによって初期化されます。 しかし、コンポーネントが DLL 内部より使用され、かつその DLL がアプリケーションによって使用される場合、コンポーネントはホスト アプリケーションのスタートアップ コードが実行される前に(つまり、COM が初期化される前に)読み込まれます。 これが、「ランタイム エラー 217」を発生させます。
これを解決するには:
- DLL を、LoadLibrary および GetProcAddress を使用して明示的に読み込みます。
- ホスト アプリケーションが VCL アプリケーションでない場合、CoInitialize を、LoadLibrary を呼び出す前に、呼び出します。
- DLL のエクスポートされた関数を「遅延状態」 として印付けし、それにより、関数が最初に呼び出された際に DLL を読み込みます。それまでには、VCL アプリケーション(および COM)は、すでに初期化されている状態になります。
これは、イメージ コレクション(TDBNavigator など)を使用するその他の組み込みコンポーネントにも影響します。