■画像ファイルロードの周辺知識

グラフィックスもできた、ロード方法も理解した……からといって、安心してしまうのは早計だ。その他のプロパティ設定もあるし、ロードにまつわる関連知識を備えておかないとイザとなって困ることになる。

ピクチャボックスをグラフィックス素材の格納庫とする場合、まずは次のようにプロパティを設定しておこう。例外的な用法を除けば、これが標準設定だ。

・AutoRedraw = True
・AutoSize = True
・BorderStyle = 0 - なし
・Enabled = True
・ScaleMode = 3 - ピクセル
・Visible = False

たとえ「Visible = False」にしても、開発中にフォーム上のピクチャボックスが見えなくなるわけではない。そのため、Pictureプロパティに画像ファイルを直接指定すると、開発中のフォームがグラフィックスの山でワケがわからなくなってしまう恐れがある。そこで、このようなときはフォームの右下に、ピクチャボックスの左上部分が表示されるように配置しておくとよい。複数のピクチャボックスがある場合でも、順にずらしていけばキチンと整理できるはずだ。

いっぽう、プログラムで画像ファイルをロードするときは、まず自分が位置するパスを知っておく必要がある。ファイルをロードするからには、ドライブ〜フォルダ名……と指定しなければならないからだ。だが、これは「App.Path」つまりアプリケーションのPathプロパティで簡単に知ることができる。ただし、自身がルートディレクトリにあるときには、ドライブ名(例 ⇒ C:)だけを返すので、サブフォルダからロードするためにはサブフォルダ名の先頭に「¥」を加えなければならない。

これに対し、自身がどこかのフォルダに属している場合は「C:\Folda_1\Folda_2\」というように、最初から右端に「¥」が付いている。したがって、今度は「¥」を加えずにサブフォルダ名を追加することになる。些細なことだが、どこにプログラムが配置されても支障なく動くようにするには、次のようにして「現在のPath」を得る必要がある。

※ Spathに現在のPath名を取得する場合




こうして、無事にピクチャボックスのPictureプロパティに、LoadPicture関数を使ってビットマップファイルをロードをしたら、最後に念には念を入れてパレットの統一を図っておきたい。具体的には、基準のピクチャボックスにある画像(Pictureオブジェクト)のhpalプロパティを、全Pictureオブジェクトのhpalプロパティに代入すればよいのだ。

例: Picture2.Picture.hpal = Picture1.Picture.hpal

たかが画像のロードであっても、第三者にプログラムを提供するためには、細部に渡っての気配りが求められるのである。