|
|
||||
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; } //------------------------------------------------------------------- |