演示Pen对象的各种风格
2007-10-05 15:47
176 查看
本实例将向读者说明,如何在Delphi中利用Pen对象来绘制虚线和点划线等图形。
图3-10 程序运行结果
Style属性为Pen对象提供了一些标准的绘图风格,利用这些画笔可以绘制出各种形式的图形,它的参数取值范围为psSolid、psDash、psDot、psDashDot、psDashDotDot、psClear和psInsideFrame。
常用Style属性设置值及其说明如下。
(1) psDash:画笔将绘制破折号。
(2) psDot:画笔将绘制点。
(3) psDashDot:画笔将绘制点划线。
(4) psInsideFrame:内收实线。
(5) psSolid:实心画笔操作。
(6) psDashDotDot:画笔将绘制双点划线。
(7) psClear:画笔空操作。
本程序绘图的主体代码放在了窗体的OnPaint事件的过程响应代码中,代码如下:
procedure TForm1.FormPaint(Sender: TObject);
var
PS:array[0..6] of TPenStyle;
i:Integer;
begin
PS[0]:=psSolid;
PS[1]:=psDash;
PS[2]:=psDot;
PS[3]:=psDashDot;
PS[4]:=psDashDotDot;
PS[5]:=psClear;
PS[6]:=psInsideFrame;
Canvas.Brush.Style:=bsClear;
Canvas.Pen.Width:=1;
for i:=1 to 7 do
begin
Canvas.Pen.Style:=PS[i-1];
Canvas.MoveTo(10,25*i);
Canvas.LineTo(160,25*i);
end;
end;
程序首先定义了一个数组变量PS,它的类型为TPenStyle,在程序运行的过程中,它将存储绘图的风格,而Integer类型的变量i用于控制循环语句。然后为PS数组赋值,并且设置Canvas对象的属性。最后通过Canvas.Pen.Style:=PS[i-1]语句为Pen对象选择绘图风格,通过Canvas.MoveTo(10,25*i)和Canvas.LineTo(160,25*i)语句采用选中的风格在窗体上绘制直线。
程序代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;
type
TForm1 = class(TForm)
procedure FormPaint(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormPaint(Sender: TObject);
var
PS:array[0..6] of TPenStyle;
//定义存储绘图风格的数组
i:Integer;
begin
PS[0]:=psSolid;
PS[1]:=psDash;
PS[2]:=psDot;
PS[3]:=psDashDot;
PS[4]:=psDashDotDot;
PS[5]:=psClear;
PS[6]:=psInsideFrame;
//绘图风格数组赋值
Canvas.Brush.Style:=bsClear;
Canvas.Pen.Width:=1;
for i:=1 to 7 do
begin
Canvas.Pen.Style:=PS[i-1];
Canvas.MoveTo(10,25*i);
Canvas.LineTo(160,25*i);
end;
end;
end.
保存文件,然后按F9键运行程序,运行结果如图3-11所示。
图3-11 程序运行结果
通过本实例,读者可以学习到如何利用Pen对象绘制实线、虚线和点划线等,这样可以充分发挥Pen对象的作用。
图3-10 程序运行结果
Style属性为Pen对象提供了一些标准的绘图风格,利用这些画笔可以绘制出各种形式的图形,它的参数取值范围为psSolid、psDash、psDot、psDashDot、psDashDotDot、psClear和psInsideFrame。
常用Style属性设置值及其说明如下。
(1) psDash:画笔将绘制破折号。
(2) psDot:画笔将绘制点。
(3) psDashDot:画笔将绘制点划线。
(4) psInsideFrame:内收实线。
(5) psSolid:实心画笔操作。
(6) psDashDotDot:画笔将绘制双点划线。
(7) psClear:画笔空操作。
本程序绘图的主体代码放在了窗体的OnPaint事件的过程响应代码中,代码如下:
procedure TForm1.FormPaint(Sender: TObject);
var
PS:array[0..6] of TPenStyle;
i:Integer;
begin
PS[0]:=psSolid;
PS[1]:=psDash;
PS[2]:=psDot;
PS[3]:=psDashDot;
PS[4]:=psDashDotDot;
PS[5]:=psClear;
PS[6]:=psInsideFrame;
Canvas.Brush.Style:=bsClear;
Canvas.Pen.Width:=1;
for i:=1 to 7 do
begin
Canvas.Pen.Style:=PS[i-1];
Canvas.MoveTo(10,25*i);
Canvas.LineTo(160,25*i);
end;
end;
程序首先定义了一个数组变量PS,它的类型为TPenStyle,在程序运行的过程中,它将存储绘图的风格,而Integer类型的变量i用于控制循环语句。然后为PS数组赋值,并且设置Canvas对象的属性。最后通过Canvas.Pen.Style:=PS[i-1]语句为Pen对象选择绘图风格,通过Canvas.MoveTo(10,25*i)和Canvas.LineTo(160,25*i)语句采用选中的风格在窗体上绘制直线。
程序代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;
type
TForm1 = class(TForm)
procedure FormPaint(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormPaint(Sender: TObject);
var
PS:array[0..6] of TPenStyle;
//定义存储绘图风格的数组
i:Integer;
begin
PS[0]:=psSolid;
PS[1]:=psDash;
PS[2]:=psDot;
PS[3]:=psDashDot;
PS[4]:=psDashDotDot;
PS[5]:=psClear;
PS[6]:=psInsideFrame;
//绘图风格数组赋值
Canvas.Brush.Style:=bsClear;
Canvas.Pen.Width:=1;
for i:=1 to 7 do
begin
Canvas.Pen.Style:=PS[i-1];
Canvas.MoveTo(10,25*i);
Canvas.LineTo(160,25*i);
end;
end;
end.
保存文件,然后按F9键运行程序,运行结果如图3-11所示。
图3-11 程序运行结果
通过本实例,读者可以学习到如何利用Pen对象绘制实线、虚线和点划线等,这样可以充分发挥Pen对象的作用。
相关文章推荐
- 演示JNI如何访问各种对象属性等
- js 获取对象属性的各种方法
- 在工作的时候为了满足各种对象生成execl
- [SAP ABAP开发技术总结]选择屏幕——各种屏幕元素演示
- spring-data-jpa+hibernate 各种缓存的配置演示
- [项目过程中所遇到的各种问题记录]ORM篇——使用NHibernate配置对象实体的一些小问题
- BW--BW各种对象对应的图标列表
- block作为属性,作为参数,作为返回值各种情况演示
- GEM5中各种对象继承关系
- SQLPROMPT5.3对各种加密对象的解密测试
- 各种流行的编程风格
- Informatica各种对象的关系查询
- SNF快速开发平台MVC-各种级联绑定方式,演示样例程序(包含表单和表格控件)
- 各种流行的编程风格,你属于哪一种?
- Javascript中创建对象的各种模式
- jquery获取对象的各种宽高
- 各种流行的编程风格
- linux内核设计与实现思想 – C风格的面向对象
- iOS中各种风格时间轴的设计及总结
- 对象引用JAVA 各种reference和垃圾回收机制