|
||
解説: PaintBox コンポーネントを使うと、フォームにイメージを描画できます。 イメージは Canvas の表面に描画されているだけなので、他のウィンドウが上に来ると消えてしまいます。そのため OnPaint イベントで再描画させる必要が出てきます。 似たようなコンポーネントに Image がありますが、こちらはオブジェクトにイメージが格納されるので消えることはありません。 PaintBox にイメージを表示させるには、他の Canvas(Image コンポーネントや Bitmap オブジェクト)に表示されているイメージをコピーしなければなりません。 使用例: 今回は、Image コンポーネントに表示した画像を PaintBox にコピーし、他のウィンドウで邪魔された場合の処理を記述しています。画像はプロジェクトのフォルダに "sample.bmp" として用意しておいてください。 コンポーネントは、 Image, PaintBox, Button を適当に配置します。 コーディングでは、Button1 の OnClick で Image1 に画像を読み込み、表示した画像を PaintBox1 にコピーしています。 OnPaint イベントでは他のウィンドウでイメージが消された場合を考えて、再描画に対応しています。 //------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { //イメージファイルをロード Image1->Picture->LoadFromFile("sample.bmp"); //Image1 を PaintBox にコピー PaintBox1->Canvas->Draw(0, 0, Image1->Picture->Bitmap); } //------------------------------------------------------------------- void __fastcall TForm1::PaintBox1Paint(TObject *Sender) { //再描画 PaintBox1->Canvas->Draw(0, 0, Image1->Picture->Bitmap); } //------------------------------------------------------------------- |