关闭

演示Pen对象的各种风格

1047人阅读 评论(0) 收藏 举报
本实例将向读者说明,如何在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对象的作用。

 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:42523次
    • 积分:762
    • 等级:
    • 排名:千里之外
    • 原创:31篇
    • 转载:4篇
    • 译文:0篇
    • 评论:8条
    最新评论