ペン スタイルの変更
ペンの Style プロパティを使用すると、実線、破線、点線などを指定できます。
ペンのプロパティ設定は、異なるコントロールが同じイベントハンドラを使ってイベントを処理する事例の典型的な例です。実際にどのコントロールがイベントを受け取ったのかを確認するには、Sender パラメータをチェックします。
ツールバーにある 6 つのボタンに対応した共通のクリックイベントハンドラを作成するには:
- 6 つのペンスタイルボタンをすべて選択して、オブジェクト インスペクタ > イベント > OnClick イベント を選択し、ハンドラ列に「SetPenStyle」を入力します。コード エディタでは、SetPenStyle という空のクリックイベントハンドラを生成し、6 種類すべてのボタンの OnClick イベントに結び付けます。
- Sender の値に応じてペンのスタイルを設定するコードを、クリックイベントハンドラ内に記述します。Sender はクリックイベントを送信したコントロールを示しています。
procedure TForm1.SetPenStyle(Sender: TObject);
begin
with Canvas.Pen do
begin
if Sender = SolidPen then Style := psSolid
else if Sender = DashPen then Style := psDash
else if Sender = DotPen then Style := psDot
else if Sender = DashDotPen then Style := psDashDot
else if Sender = DashDotDotPen then Style := psDashDotDot
else if Sender = ClearPen then Style := psClear;
end;
end;
void __fastcall TForm1::SetPenStyle(TObject *Sender)
{
if (Sender == SolidPen)
Canvas->Pen->Style = psSolid;
else if (Sender == DashPen)
Canvas->Pen->Style = psDash;
else if (Sender == DotPen)
Canvas->Pen->Style = psDot;
else if (Sender == DashDotPen)
Canvas->Pen->Style = psDashDot;
else if (Sender == DashDotDotPen)
Canvas->Pen->Style = psDashDotDot;
' else if (Sender == ClearPen)
Canvas->Pen->Style = psClear;
}
void __fastcall TForm1::SetPenStyle(TObject *Sender)
{
if (Sender->InheritsFrom (__classid(TSpeedButton))
Canvas->Pen->Style = (TPenStyle) ((TSpeedButton *)Sender)->Tag;
}