unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} var btn: TButton; const y1 = 10; y2 = 80; {先设置画笔画刷} procedure TForm1.FormCreate(Sender: TObject); begin Canvas.Pen.Width := 4; Canvas.Pen.Color := clRed; Canvas.Brush.Color := clWhite; end; {给出左上角和右下角的坐标就可以绘制矩形} procedure TForm1.Button1Click(Sender: TObject); begin btn := TButton(Sender); Canvas.Rectangle(btn.Left, y1, btn.Left+btn.Width, y2); end; {给出一个矩形结构做参数也可以绘制矩形} procedure TForm1.Button2Click(Sender: TObject); var R: TRect; {定义一个矩形结构} begin btn := TButton(Sender); R := Rect(btn.Left, y1, btn.Left+btn.Width, y2); Canvas.Rectangle(R); end; {绘制圆角矩形; 最后两个参数是设置圆角的} procedure TForm1.Button3Click(Sender: TObject); begin btn := TButton(Sender); Canvas.RoundRect(btn.Left, y1, btn.Left+btn.Width, y2, 20,20); end; {绘制焦点矩形; 它不受画笔的影响; 它的颜色是和画刷的颜色进行某种运算得来的} procedure TForm1.Button4Click(Sender: TObject); var R: TRect; begin btn := TButton(Sender); R := Rect(btn.Left, y1, btn.Left+btn.Width, y2); Canvas.DrawFocusRect(R); end; {矩形描边, 用的不是画笔是画刷} procedure TForm1.Button5Click(Sender: TObject); var R: TRect; begin btn := TButton(Sender); R := Rect(btn.Left, y1, btn.Left+btn.Width, y2); Canvas.FrameRect(R); end; end.
//效果图: