Vcl.Graphics.DDBsOnly
Delphi
DDBsOnly: Boolean = False; // True = Load all BMPs as device bitmaps.
C++
extern DELPHI_PACKAGE bool DDBsOnly;
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
variable | public | Vcl.Graphics.pas Vcl.Graphics.hpp |
Vcl.Graphics | Vcl.Graphics |
説明
ビットマップハンドルを DDB(デバイス依存ビットマップ)として作成するかどうかを示します。
DDBsOnly を設定して,すべてのビットマップハンドルを DDB(機種独立ビットマップ)として作成するように強制します。デフォルトのビットマップハンドルフォーマットは DIB(機種独立ビットマップ)です。
DDBsOnly を true に設定するとグラフィックアーキテクチャの多くを除外することになります。したがって,絶対に必要でない限り使用すべきではありません。以下は true に設定した場合の例です。
グラフィックを多用するアプリケーションは Windows が DIB でサポートしないビットマップ操作を行います。ビットマップオブジェクトのハンドルプロパティにアクセスする前に,各ビットマップオブジェクトを DDB に設定するか,またはこのグローバル変数を true に設定することができます。
アプリケーションで小さなビットマップを数百個使用する場合。DIB は,1 つにつき少なくとも 4 KB のメモリを消費するので,DDB に比べ,数多くの小さいビットマップを格納するのには適していません。ただし,DDBsOnly の値を変更する前に,イメージリストを使用することを考えてください。イメージリストは DIB や DDB に比べ,小さいイメージ(ただし同一の大きさを持つビットマップのみ)を格納するのに適しています。
メモ: DDBsOnly を true に設定するとイメージ改変の問題が生じます。ビットマップファイルやリソースを DDB に読み込むと,元のイメージのカラー情報は,現在のビデオデバイスやモードに適合するように変更されます。イメージを読み取り,そのハンドルを操作して書き込むと,読み取ったイメージと書き込んだイメージは異なることがあります。DIB はこの問題を解決しています。特に必要のない限り,DDBsOnly は変更しないでください。