Canvasプロパティの使い方(図形描画の方法)
椙山 浩一
線や図形はCanvasプロパティを持つオブジェクト上にのみ描画できます。主なオブジェクトとしてはForm、PaintBox、Image等です。
以下に、一例としてサンプルプログラムのソースを記述します。フォーム全体を白色に塗りつぶし、その上に5つのボタンを配置して、それぞれのボタンのOnClickイベントに以下のように記述します。
<Unit1.cpp>
//---------------------------------------------------------------------------
//赤色の実線を描画します
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Canvas->Pen->Color = clRed; //線の色を指定します
Canvas->Pen->Style = psSolid; //線の種類を指定します
Canvas->Pen->Width = 2; //線の太さを指定します
Canvas->MoveTo(50,100); //始点の座標です
Canvas->LineTo(200,100); //終点の座標です
}
//---------------------------------------------------------------------------
//青色の点線を描画します
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Canvas->Pen->Color = clBlue;
Canvas->Pen->Style = psDot; //点線を指定します
Canvas->Pen->Width = 1; //実線以外では太さは1しか指定できません
Canvas->MoveTo(50,150);
Canvas->LineTo(200,150);
}
//---------------------------------------------------------------------------
//緑色の楕円を描画します
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Canvas->Pen->Color = clGreen;
Canvas->Pen->Style = psSolid;
Canvas->Pen->Width = 3;
Canvas->Ellipse(250,5,350,200); //楕円を描画
//楕円は四角形に外接するように描画されます
}
//---------------------------------------------------------------------------
//黒色の点線で四角を描画します
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Canvas->Pen->Color = clBlack;
Canvas->Pen->Style = psDashDot; //一点鎖線を指定します
Canvas->Pen->Width = 1;
Canvas->Rectangle(370,10,440,200); //四角形を描画
//対角線状に座標を指定します(x1,y1,x2,y2)
}
//---------------------------------------------------------------------------
//図形をクリアします
void __fastcall TForm1::Button5Click(TObject *Sender)
{
Canvas->Pen->Color = clWhite;
Canvas->Brush->Color = clWhite;
Canvas->Rectangle(0,0,Form1->Width,Form1->Height);
//フォーム全体を白で塗りつぶします
//フォーム全体に四角形を描画し、その中を白で塗りつぶします
}
//---------------------------------------------------------------------------