ブラシ スタイルの変更

提供: RAD Studio
移動先: 案内検索

ブラシの利用 への移動


ブラシ スタイルでは、キャンバスで図形を塗りつぶすのに使われるパターンを指定します。 このスタイルを使うことで、ブラシの色と、キャンバス上に既に存在する任意の色とを、さまざまに組み合わせる方法を指定できます。 定義済みのスタイルには、塗りつぶし、色なし、さまざまな線や模様のパターンなどがあります。

ブラシのスタイルを変更するには、Style プロパティを定義済みの値(bsBDiagonal、bsClear、bsCross、bsDiagCross、bsFDiagonal、bsHorizontal、bsSolid、bsVertical)のいずれかに設定します。

この例では、8 つのブラシ スタイル ボタンすべてに対して共通の 1 つのクリック イベント ハンドラを割り当てて、ブラシ スタイルを設定しています。8 つのボタンをすべて選択し、[オブジェクト インスペクタ|イベント|OnClick]で OnClick ハンドラの名前を SetBrushStyle に設定します。

ハンドラのコードは以下のとおりです。

procedure TForm1.SetBrushStyle(Sender: TObject);
begin
  with Canvas.Brush do
  begin
    if Sender = SolidBrush then Style := bsSolid
    else if Sender = ClearBrush then Style := bsClear
    else if Sender = HorizontalBrush then Style := bsHorizontal
    else if Sender = VerticalBrush then Style := bsVertical
    else if Sender = FDiagonalBrush then Style := bsFDiagonal
    else if Sender = BDiagonalBrush then Style := bsBDiagonal
    else if Sender = CrossBrush then Style := bsCross
    else if Sender = DiagCrossBrush then Style := bsDiagCross;
  end;
end;
void __fastcall TForm1::SetBrushStyle(TObject *Sender) {
	if (Sender == SolidBrush)
		Canvas->Brush->Style = bsSolid;
	else if (Sender == ClearBrush)
		Canvas->Brush->Style = bsClear;
	else if (Sender == HorizontalBrush)
		Canvas->Brush->Style = bsHorizontal;
	else if (Sender == VerticalBrush)
		Canvas->Brush->Style = bsVertical;
	else if (Sender == FDiagonalBrush)
		Canvas->Brush->Style = bsFDiagonal;
	else if (Sender == BDiagonalBrush)
		Canvas->Brush->Style = bsBDiagonal;
	else if (Sender == CrossBrush)
		Canvas->Brush->Style = bsCross;
	else if (Sender == DiagCrossBrush)
		Canvas->Brush->Style = bsDiagCross;
}

ブラシ スタイル ボタンそれぞれの Tag プロパティにブラシ スタイル定数を指定すると、上記のイベント ハンドラ コードはもっと短くすることができます。その場合のイベント コードは以下のようになります。

void __fastcall TForm1::SetBrushStyle(TObject *Sender) {
    if (Sender->InheritsFrom(__classid(TSpeedButton)) Canvas->Brush->Style =
        (TBrushStyle)((TSpeedButton*)Sender)->Tag;}

関連項目