AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
Delphi2010 イメージリスト(ImageList) 2010/10/03
 
前回は[Win32]内の「PageControl」(ページコントロール)について見ましたので、今回は同じく[Win32]内の「ImageList」(イメージリスト)について見てみます。イメージリストは Delphi6 にもあります。

 
イメージリストは、これまでに何度も出てきていますが、複数のアイコン・画像ファイルを集め、それに番号付けを行い、他の色々なコントロールから参照することによってそれらにアイコン・画像ファイルを表示させる事が出来る、アイコン・画像ファイルと各種コントロール間の仲介システムのようなものです。
 
取り合えず配置してみます。1つ目ですので Nameプロパティは「ImageList1」となります。

 
<オブジェクトインスペクタ>にて、イメージリスト ImageList1の Widthプロパティ(幅)と Heightプロパティ(高さ)をアイコン・画像と合わせておきます。
 
<フォームデザイナ>にて、イメージリスト ImageList1 をダブルクリック、或いは、右クリックメニュー「イメージリストの設定」を行い、アイコン・画像ファイルを登録します。

以下のような画面が表示されます。
アイコン・画像ファイルを登録するには[追加]ボタンをクリックします。

ファイルを選択する画面が表示されます。
画面は使用OSによって異なる場合があります(以下はWindows7の場合)
アイコン・画像ファイルを選択して(※複数選択可能)[開く]ボタンをクリックします。追加し終わったら[OK]ボタンをクリックします。



 
イメージリストを参照したいコントロール側で、Imagesプロパティを上記の「ImageList1」にセットします。使用するアイコン・画像の番号は、例えば、ImageIndexというような名前のプロパティで指示しますがそれは、0〜 の数値として扱い、「-1」値はアイコン・画像を参照しない、という事を意味します。使用するコンポーネントによっては、初期値として自動的に画像の番号が割り振られる場合があります。





 
イメージリストで扱えるアイコン・画像のファイル形式は、「.ico」、「.bmp」、「.wmf」、「.emf」、「.jpg」・「.jpeg」、「.tif」・「.tiff」、「.gif」、「.png」となっています。Delphi6では、「.ico」と「.bmp」だけでしたから、かなり拡張されたと言えますね。画像の32bit形式(アルファブレンド)も対応との事です。但しヘルプには
メモ: 画像リストは、Comctl32.dll に依存します。システムに最新バージョンがインストールされていない場合、画像の取得で問題が発生する可能性があります。
とありますので注意したほうがいいかもしれません。
 
 
それでは、<オブジェクトインスペクタ>を見ていきます。
 
AllocByプロパティは、ヘルプによると
新しいイメージを収容するための収容領域を作成するときに,イメージリストのイメージ数をいくつ増やすかを設定します。
AllocBy プロパティは,サイズを変更したイメージリストに追加できる新しいイメージの数を指定できます。
とありデフォルト値は「4」となっています。
<フォームデザイナ>にて、数値を少し変えてみましたが、画面的にどう変わったのかはよく分かりませんでした。
 
BkColorプロパティは、ヘルプによると
イメージを描画するときに使用する背景色を決めます。
BkColor プロパティは,イメージの背景色を示します。BkColor が clNone の場合,イメージは透過的に描画されます。このとき,透過領域を定義するためにマスクを使用します。clNone 以外の場合,BkColor の値がマスク領域以外の場所に表示されます。
メモ:Masked プロパティが false の場合,BkColor の値は無視されます。
とありデフォルト値は「clNone」となっています。
 
BlendColorプロパティは、ヘルプによると
イメージを描画するときに使用する前景色を決めます。
DrawingStyle が dsFocus または dsSelected のとき,BlendColor プロパティを設定すると,リスト内のイメージを特定の色に設定できます。DrawingStyle が dsSelected のときは,より多くの BlendColor が,イメージと組み合わせられます。clDefault がシステムの強調表示色を示すのに対して,clNone を指定すると,色は混合されません。
とありデフォルト値は「clNone」となっています。
 
ColorDepthプロパティは、ヘルプによると
リスト内の画像のカラー深度。
ColorDepth は、リスト内の画像のカラー深度型 TColorDepth です。
とあり「cd16Bit」「cd24Bit」「cd32Bit」「cd4Bit」「cd8Bit」「cdDefault」「cdDeviceDependent」のうちから選択可能です。デフォルト値は「cdDeviceDependent」(デバイス依存=各画像ファイルに依存)となっています。
 
DrawingStyleプロパティは、画像を描画する際のスタイルを示し、「dsFocus」、「dsNormal」(通常:デフォルト)、「dsSelected」、「dsTransparent」のうちから選択可能です。ヘルプでは
イメージリストがイメージを描画するときに使用するスタイルを指定します。
DrawingStyle プロパティは,イメージの表示方法を指定できます。DrawingStyle は,BlendColor で指定した混合色が前景色または背景色とどの程度混ぜ合わせられるかを制御します。
とあり少し試してみようとしましたがよく分かりませんでした。
 
ImageTypeプロパティは、ヘルプによると
描画のときにイメージリストが関連したマスクを使用するかどうかを決めます。
イメージをイメージマスクを使って描画する(itMask)か,マスクを使用せずに描画する(itImage)かは,ImageType プロパティを使って制御してください。
とありデフォルト値は「itImage」となっています。
 
Maskedプロパティは、ヘルプによると
イメージに結び付けることのできるマスクをイメージリストに含めるかどうかを示します。
Masked プロパティを true に設定すると,イメージをマスクに結び付けることができます。ビットマップのマスクされた部分は,透過的に描画されるか,あるいは BkColor プロパティで指定されている色に置換されます。
Masked は,イメージリストがイメージと組み合わせたマスクを使用するかどうかを示します。そのマスクを使用するために,ImageType プロパティは,イメージを描画するか,マスクを描画するかを指定します。
とありデフォルト値は「True」となっています。
 
ShareImagesプロパティは、ヘルプによると
イメージリストが破棄されるときにイメージリストがそのハンドルを破棄するかどうかを決めます。
イメージリストが破棄されるときにイメージリストのハンドルを破棄するには,ShareImages プロパティを false に設定してください。
とありデフォルト値は「False」となっています。
 
 
以上、色々なプロパティがありますが、イメージリストを使用する多くは、各コントロールで見栄えをよくするためにアイコン・画像を付加する、というケースであり、そういう場合は大抵、小さな大きさ(16×16〜48×48)であろうと思われます。そのような小さなアイコン状態の絵そのものに対して単独で色合成のような事をする事は余り無いのではないかと思います。ですので上記は基本的にデフォルト状態で使う事が多いのではないかと思われます。
 
 
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
▲2010/10/02
 2010/10/03
▼2010/10/04
 
シェアウェア
Script!World
データベース
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.