第3章 图形与多媒体处理实例 实例51 演示Pen对象的各种风格
本实例将向读者说明,如何在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对象的作用。 |