## Delphi 的绘图功能[3] - 矩形类图形 转

涂孟超

``````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.

//效果图:``````

### 涂孟超

GIS软件中的交互式绘图设计与实现

2013/12/25
138
0
Android: Android图形基础

《Android 基础教程(第3版)》Ed Burnette Android在其android.graphics包中提供了完整的本机二维图形库: Color Android中的颜色用4个数字表示(Alpha, Red, Green, Blue) 1. int color = Colo...

2012/06/20
402
0
VC橡皮筋绘制技术的实现

2013/12/25
126
0

2014/01/06
3.3K
7
Web 开发中的矢量绘图处理和应用

IBMdW
2011/09/03
1K
0

BEM是基于组件的web开发方法。其思想是将用户界面分隔为独立的块，从而使开发复杂的UI界面变得更简单和快，且不需要粘贴复制便可复用现有代码。BEM由Block、Element、Modifier组成。选择器里...

16分钟前
1
0

bboysoulcn
20分钟前
2
0
mybatis 自动维护 createdAt, updatedAt

SpringBoot Mybatis Plus公共字段自动填充功能

youngjdong
23分钟前
2
0
Docker之nginx容器中部署静态文件

24分钟前
3
0

github毕竟是公开的，而私有仓库又得花钱买。所以我们可以想办法搭建一个私有的，只自己公司使用的。Gitlab是个不错的选择。在介绍它之前，先讲述一下命令行的git服务器 找一台服务器，首先要...

chencheng-linux
30分钟前
7
0