ブラシ スタイルの変更
ブラシの利用 への移動
ブラシ スタイルでは、キャンバスで図形を塗りつぶすのに使われるパターンを指定します。 このスタイルを使うことで、ブラシの色と、キャンバス上に既に存在する任意の色とを、さまざまに組み合わせる方法を指定できます。 定義済みのスタイルには、塗りつぶし、色なし、さまざまな線や模様のパターンなどがあります。
ブラシのスタイルを変更するには、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;}