Delphiで多数のメニューを使う場合、TImageListで画像を一括管理するのが便利です。
しかし大きなアイコン、大きなアイコンのフォーカス状態、小さなアイコン、小さなアイコンのフォーカス状態・・・などと作っていくと、管理するだけで大変です。
しかもアイコン全てのTImageList内の並び順も同じにしなければアイコンが狂ってしまいます。
そんなときに役立つテクニックです。
1、1つの画像ファイルにアイコンを並べる
まずは使いたいアイコンを1枚の画像にしてしまいます。
(画面はAdobe FireWorks。アイコンはFatCowさんの高品質フリーアイコンです)
上の画像では32×32ピクセルのアイコンを4つ並べています。
画像のサイズは128×32ピクセルとなります。
2、TImageListで読み込む
次に画像をTImageListで読み込みます。
上の画像を使う場合、プロパティのHeight、Widthはともに「32」を指定します。
TImageListをダブルクリックし、
「追加」から先ほどの128×32ピクセルの画像を読み込みます。
3、アイコンが分割される
すると次のようなダイアログが現れます。
「はい」を押すと・・・
ドン!とみごと4つに分割されて入りました!
4、さらに
さらに次は128×64(4個x2個)の画像を作ってみます。
1~3の手順を行うと・・・
なんとしっかり8個に分割してくれます!
便利!
メリット
このテクニックを使うことによっていくつものメリットがあります。
並び順が完全に同じになる
- 大きなアイコンの画像を作っておけば、縮小して読み込ませるだけで小さなアイコンのImageListができあがる
- フォーカス状態、操作不可状態など、全アイコンを1枚の画像から生成できるので早い
- 1枚の画像になっているので色の調整などが一括してできる
- 他のソフトで同じ並びで使いたい場合でも、画像を読み込めばすぐに再現できる
- 1枚の画像なのでファイルとしても管理がカンタン
などなど。
かなりの作業量を削減してくれます。
Delphiで大型ツールを作っている方はぜひ使ってみてください。