ホーム
|
アプリケーション | Tips | ダウンロード | プログラム
| コラム

CBアプリ工房


Tips >   

ResourceStream で exe に埋め込んだ画像を表示 

更新 : 2009/12/17

 



解説:
アプリケーションの配布で、必要なファイルを添付する場合があります。
しかし、何かの事情で添付できない(したくない)ときはどうすればよいでしょう?

そのような場合(ファイルサイズにもよりますが)、実行ファイルにリソースファイルとして埋め込んでおいて、アプリケーション起動後、呼び出す手段があります。
今回は、画像のリソースファイルを作って、TResourceStream で読み出してみます。

使用例:
VCL の TResourceStream で画像ファイルを読み出し Image に表示させます。
事前準備として、画像("sample.bmp")とリソースファイルを用意しておきます(実行ファイルと同じフォルダにおいてください)。

リソースファイルは、通常のテキストファイルなので、以下のように書けます。
image BMP "sample.bmp"
これをファイル名 "rcfile.rc" として保存してください。

コンポーネントは、 Image と Button を適当に配置しておしまいです。
コンポーネントの設定は、Image1 の AutoSize を true にしておけば、他は特にありません。

アプリケーションを起動して、Button1 をクリックすると、TResourceStream 変数に用意したリソースファイルから、画像リソースが読み出されます。それを Image1 に表示させています。
最後に、リソースを破棄して終了です。

画像だけではなく、他のファイルもリソースとして組み込めるので、いろいろ試してみてください。

//-------------------------------------------------------------------
"Project1.cpp"
USERC("rcfile.rc");// 追加

//-------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    // リソースの取り込み
    TResourceStream *rs = new TResourceStream((int)HInstance, "image", "BMP");

    // 画像を読み込む(Stream からグラフィックオブジェクトをロード)
    Image1->Picture->Bitmap->LoadFromStream(rs);

    delete rs;
}
//-------------------------------------------------------------------



[ ホーム | ページトップ | ブック | リンク | サイトマップ ]
Copyright(c) 2003 Shibu All rights reserved.