演示Pen对象的各种风格

转载 2007年10月05日 15:47:00
本实例将向读者说明,如何在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对象的作用。

 

相关文章推荐

Pen、Brush对象

创建和使用Pen、Brush对象 下面使用Pen、Brush和Font对象来创建二维矢量图形、文本以及带有GDI+的位图。Pen对象和Brush对象是Windows窗体图形系统的基础。使用Pen对象绘...

第二章 面向对象的编程风格(如何编写函数)

2.1  如何编写函数   fibonacci函数:1 1 2 3 5 8 13 21...... 程序:编写一个函数 该函数返回fibonacci数列中由用户指定的某个位置的元素。例如用户可以询问f...

流程的Python 第九章:符合Python风格的对象

前言: 自己定义类,让类的行为跟真正的Python对象一样。目录: 内容回顾 相关资料 阅读后感 正文: 一. 内容回顾 1.1 对象表现形式 repr() : 以便于开发者理解的方式返回对...
  • Temanm
  • Temanm
  • 2017年07月21日 15:20
  • 139

调用返回风格(面向对象与主程序子程序)

调用返回风格 1、  主程序-子程序风格 2、  面向对象风格 主程序-子程序: 组件–主程序、子程序 连接件–调用-返回机制 拓扑结构–层次化结构 主程序-子过程风格的优点与缺点 §优点: –有效地...

C风格字符串 C++string对象 字符串常量 字符串直接量

最大的区别就是C风格的字符串是静态的,不可以动态变化,使用极为麻烦。 而C++的std::string类型动态管理,非常方便。 C风格字符串和char数组是不一样的,看下面两种定义: cha...
  • sole_cc
  • sole_cc
  • 2015年06月13日 09:44
  • 1135

c++基于对象的编程风格

c++基于对象的编程风格 知识点: 下面知识点会在代码中统一演示 1.构造函数和析构函数(构造函数的初始化语法 直接初始化和成员初始化列表) 2.mutable和const 1)为了...

c风格的面向对象--linux内核学习

Linux使用了struct这个来实现对象,函数指针来实现方法。比如说,设备是一个类,每一个驱动程序都将这个类实例化,然后交给内核。 linux内核大量地使用了oo的思想,只是没有用C++罢了。...

linux内核设计与实现思想 – C风格的面向对象

原文链接:linux内核学习 – C风格的面向对象     linux内核大量使用面向对象的编码风格。然而linux内核是完全使用C写就。学习他们如何使用C模拟面向对象机制很有意思。这种做法...

openGL粒子系统实现(面向对象风格)

使用基本openGL(非GLSL)实现一个面向对象风格粒子系统。 粒子系统基本有两部分构成 粒子粒子发生器 一个粒子发生器控制一群粒子的行为,比如一条流水,一团火。 而本文的粒子系统在发生器上多封装...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:演示Pen对象的各种风格
举报原因:
原因补充:

(最多只允许输入30个字)