Delphi如何使用基本的绘图函数绘制统计图
Delphi之Tchart控件使用心得
Delphi之Tchart控件使用心得
最近在学习delphi,做一个软件练手,用到Tchart控件,有些粗略的使用心得,供delphi初学者参考。
TChart是delphi里面一个标准的图形显示控件。它可以静态设计(at design time)也可以动态生成。可下载Steema TeeChart 7,没有源代码,能用就好!
由于我要在同一个Chart界面显示不同的图形,需要动态编程实时绘制曲线。
一、添加Series之前,要删除已有的Series,只能从后往前删,否则出错:
for i:=Chart1.SeriesCount-1 downto 0 do
begin
Chart1.Series[i].Free;
end;
二、运行时候创建一个Series, 有多种方法。
1.Var MySeries : TBarSeries ;
MySeries := TBarSeries.Create( Self );
MySeries.ParentChart := Chart1 ;
2.Chart1.AddSeries( TBarSeries.Create( Self ) );
3.Var MyClass : TChartSeriesClass;
MyClass := TBarSeries ;
Chart1.AddSeries( MyClass.Create( Self ) );
在这里根据,用到循环结构动态添加多条Series。
for j:=0 to NXUGMU-1 do
begin
series:=TFastLineSeries.Create(Chart1);
Delphi 的绘图功能
Graphics 单元中的类
//Graphics 单元中的类
TGraphicsObject
TFont
TPen
TBrush
TFontRecall
TPenRecall
TBrushRecall
TCanvas
TGraphic
TPicture
TMetafileCanvas
TMetafileImage
TMetafile
TBitmapImage
TBitmap
TIconImage
TIcon
TResourceManager
TBrushResourceManager
TFileFormatsList
Delphi 的绘图功能[1] - TCanvas 的类成员//过程:
Arc
BrushCopy
Chord
CopyRect
Draw
DrawFocusRect
Ellipse
Ellipse
FillRect
FloodFill
FrameRect
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);
delphi画饼图
unit Unit1;
interface
……
type
TForm1 = class(TForm)
Chart1: TChart;
Series1: TPieSeries;
……
var
Form1: TForm1;
ps: TPieSeries;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); begin
ps.Free;
ps := TPieSeries.Create(self);
ps.Clear;
ps.Repaint;
ps.CustomXRadius := 70;
ps.CustomYRadius := 70;
ps.Marks.Arrow.Visible := False;
ps.Marks.ArrowLength := -50;
ps.Marks.Transparent := True;
ps.Marks.Frame.Visible := False;
ps.Marks.Style := smsLabel;
ps.ParentChart := Chart1;
ps.AddPie(10, '第一部分', clRed);
ps.AddPie(20, '第二部分', clGreen);
ps.AddPie(5, '第三部分', clBlue);
end;
procedure TForm1.Button1Click(Sender: TObject); begin
MoveDesPart(1);
end;
procedure TForm1.Button2Click(Sender: TObject);
delphi统计图编程
• Fast Line(TFastLineSeries):与line类型相似, 只不过它用尽可能快的方法来绘制图形。 • Arrows(TArrowsSeries):用箭头的形式绘制 图形,适用于市县多个独立事件的起点和终点。 • Gantt(TGanttSeries):这个序列类型类似 Horizonal Bar 和Arrows类型的结合体。它有许多 水平方向的条形组成,每一个条形代表一个独立 的事件。有两个横坐标,分别表示始值和终值。 纵坐标表示事件值。 • Bubble(TBubbleSeries):用一系列通向形状 的图形表示表示Series系列中的各个点,一般用 它来表示不同事件的权重。
• Each Series component must be “attached” to either a TChart or a TDBChart component In Form1, we„ll create and show another Form (Form2), and assign. Form1.LineSeries1 to Form2.ChartInForm2 : With TForm2.Create(Self) do try Self.LineSeries1.ParentChart := ChartInForm2 ; ShowModal ; finally Free ; end ;
Tchart图与Series的关系
Delphi的绘图功能[5]
Delphi的绘图功能[5]
Delphi 的绘图功能[5] - 获取 Canvas 对象
在窗体上添加 Panel1、PaintBox1 和 Button1, 代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
cvs: TCanvas;
begin
{PaintBox1 就像窗体一样, 也有 Canvas 属性}
PaintBox1.Canvas.Brush.Color := clRed;
PaintBox1.Canvas.FillRect(PaintBox1.ClientRect);
{像 Panel1 这样没有 Canvas 属性的控件, 也可以绕道获取} cvs := TCanvas.Create;
cvs.Handle := GetDC(Panel1.Handle);
cvs.Brush.Color := clBlue;
cvs.FillRect(Panel1.ClientRect);
cvs.Free;
end;
//执行前后对比图:
Delphi绘图对象属性[TCanvas][一]
Delphi绘图对象属性[TCanvas][一]
Delphi绘图对象属性[TCanvas][一]
2009-01-24 21:10
在Delphi中,专门定义了一组用于绘制图形的对象和组件,完成一些简单的图像功能。利用这些对象、组件的方法,可以方便地绘制各种常用图形;通过设置它们的属性,能得到不同风格的图形。另外,通过对鼠标事件的定义,可以方便设计图形绘制程序。
(1)TCanvas,TPen,TBrush,TColor对象的方法及属性;
(2)绘图功能的实现;
(3)TImage,TPicture,TBitBtn,TBitmap组件的方法及属性;
(4)图像观测及处理。4.4.1 TCanvas——画布对象
TCanvas对象是一个用于绘图的组件,Delphi利用这个组件为用户提供了一个绘制图形的区域,在这个区域上,程序可实现各种绘图功能,很多组件(如TImage、TMemo)的Canvas属性就是TCanvas对象。在组件上绘制图形就是在组件的画布上绘制。TCanvas的Brush、Pen、Font属性分别是TBrush、TPen、TFont对象,它们用于定义绘制图形的风格。关于TBrush、TPen对象,后面将详细介绍。
需要说明的是,Delphi中利用前缀T来标志内部定义的对象,例如TPen代表画笔对象,TForm则代表窗体对象等。
画布的笔的位置定义在PenPos属性中,可用MoveTo方法来移动笔。如果要在画布上输出文本,可用T extout方法。
TCanvas对象有很多方法,可完成常用的绘图功能。方法及功能简介见表4.2。
DELPHI中CHARTFX构件使用详解
Delphi是一种新型可视化程序开发工具。它在功能上远远胜过VB,甚至被冠以VB杀手(VB Killer)的美誉。理由之一就是Delphi可以轻松地安装和使用VB的VBX控件并转换VB程序为Delphi程序。
本文将就Delphi组件VBX页里ChartFx(图表)构件的特性和使用方法作一较为完备的阐述。相信对读者建立美观的图表有所裨益,并会对Delphi的“属性管理”有更深一步的认识。
首先介绍一下工程上经常用到的直方图和饼图的概念。由于实际需要,常需比较一组数据或多组数据的相对大小(如公司中各部门的收支情况比较、金融利率的调整情况等)。为了能够简洁直观地得到比较结果,通常将这些数据放入直角坐标系,以纵坐标的相对大小比较数据,即所谓直方图;或是将各数据转化为百分点,放入一个单位圆,即形成所谓饼图。
在Delphi组件VBX页中,ChartFx构件就是以上工程需要而设计的。选取该构件置于窗体上,调整至合适大小,即可见到缺省的图表格式(在未初始化数据时,构件自动生成随机数据充当比较项目)。在对象监视器中,设置不同的属性,还可以看到其它工具条。以下逐条解释各属性:
Nseries需比较的数据项的个数。
Nvalues每个数据项中的子项目数。
TitleDlg图表的标题设置对话框。
AdmDlg图表构件绘图区上下左右边缘处注解设置对话框。
FontDlg注解文字字体设置。
BorderStyle图表构件的边框风格。
Height、Width、Top、Left这四项设置图表构件在窗体中的位置及大小。
BottomGap、TopGap、LeftGap、RightGap这四项设置图表构件绘图区的位置及大小。
VFP操作Excel生成动态数据统计图
VFP操作Excel生成动态数据统计图(直接可用)
建一个数据表,有字段”部门名称”和”设备编号”,随便输入几条记录
建一个form,有一个按钮,在按钮的click事件里写:
Local I,J,K,Lcapp
Select 部门名称,COUNT(设备编号) AS 设备台数FROM 表 1 INTO CURSOR temp WHERE !DELETED() GROUP BY 部门名称
IF EMPTY(_tally) &&如果最近处理过的记录数为空
*??Chr(7)
=messagebox("没有统计数据,不能生成统计图!",0+48,"错误信息")
Return .T.
ENDIF
I=_tally
Wait Window "系统正在生成统计图,请稍候!" Nowait
Select temp
Go Top
Lcapp=CreateObject('Excel.Application') &&创建一个Excel对象
IF Type("Lcapp") != "O" &&如果Lcapp不存在
*??Chr(7)
=messagebox("生成统计图需要EXCEL,请您在计算机上安装EXCEL!",0+48,"错误信息")
Return .T.
ENDIF
Lcapp.Workbooks.Add &&添加工作簿
*给各单元格赋值
FOR J=1 to I
Select temp
Lcapp.cells(j,1).Value=Alltrim(temp.部门名称)
Lcapp.cells(j,2).Value=temp.设备台数
='设备台数按部门分类统计表'
Delphi的图形处理(一)
Delphi的图形处理(一)
Delphi的图形处理之一 -- 图像处理在可视化编程中的作用及其应用价值
作者:何咏发布日期:(2005-4-12 21:07:49)
声明:本文著作权属于何咏,如要转载请声明作者及出处。
第一章图像处理在可视化编程中的作用及其应用价值
图像处理,是可视化编程的基础内容。在Windows操作系统中,一切要输出到屏幕上的东西都是通过图形处理这部分的内容来实现的。比如一个程序使用了标签控件,它看起来似乎并没有用到什么图形处理,但实际上标签控件就是通过使用GDI库中的图形处理函数来实现的。可见图形处理在编程中的重要性。
图像处理在实际的应用中也极具价值。平面制作、动画制作等都离不开它。这一部分的内容十分繁多。我本次研究的内容,只是其中最基础的、最重要一部分。
探究Delphi的图形处理之二 -- 基本图像处理函数
作者:何咏发布日期:(2005-4-12 21:06:29)
声明:本文著作权属于何咏,如要转载请声明作者及出处。
第二章图像处理函数
2.1 为什么选择Delphi
所有的可视化编程语言都能够进行图像处理。但由于这些语言的定位不同,它们在进行图形处理的效率和便捷程度上也各不相同。实际上,Visual C 的图像处理效率是最高的,这是由于GDI类库本身就是用C++写的。但是使用VC来编程并不是一件方便的事,因为这个语言本身就较为繁杂难懂,所以我没有选择它。Visual Basic(VB)也是一个常用的语言,但它在图形处理方面能力较差。首先是它的坐标系统是以t wip为单位的浮点坐标系统,在调用GDI类库时,必须对坐标系统进行转换,浪费了大量的资源,编程起来较为麻烦。在多方面因素的影响下,我觉得Delphi是一个理想的语言。Delphi已经把绝大多数GDI绘图函数都封装成可直接调用的类,使用它进行图形处理操作十分方便,而且Delphi 是Pascal演变而来
德尔菲法(Delphi)Excel上机指导
1.1 德尔菲法实验
1.1.1 理论知识准备
德尔菲(Delphi )是在专家个人判断法的基础上发展起来的一种新型直观的预测方法。目前,德尔菲法已经运用在规划和决策中,并具有较高的声望,是一种重要的规划决策工具。
德尔菲法与专家会议法相比有三个特点,即匿名性、反馈性和预测结果的统计特性。匿名性就是采用匿名函询的方式征求意见,以就消除对专家判断的客观性有影响的一些不良因素。反馈性就是要进行几轮专家意见征询,并把上一轮的结果反馈到下一轮的预测中去,以便专家们可以参考有价值的意见从而提出更好的意见。预测结果的统计特性是指德尔菲法采用统计方法对专家意见进行处理,从而得到定量的表达,使得专家意见逐渐趋于一致。
德尔菲法预测步骤如下:
(1) 确定预测主题,归纳预测事件
预测主题就是所要研究和解决的问题。一个主题包括若干个事件。事件是用来说明主题的重要指标。确定预测主题和归纳预测事件是德尔菲法的关键一步。
(2) 选择专家
德尔菲法要求专家对预测主题相当了解,对预测问题的研究非常深入,所选择专家来源广泛,一般是本企业、本部门的专家和有业务联系、关系密切的外部专家以及在社会上有影响的知名人士。专家人数恰当,通常视预测主题规模而定。专家人数太少,缺乏代表性,太多又难于组织。一般情况下,专家小组人数以10~50人为宜。对重大问题的预测,专家小组的人数可扩大到l00人左右。
(3) 预测过程
经典德尔菲法的预测过程一般分为四轮。第一轮确定预测事件,要求各个专家根据所要预测的主题提出预测事件,并用准确的术语列出“预测事件一览表”。第二轮初次预测,将“预测事件一览表”发给各个专家,要求他们对各个事件做出评价,提出相应的预测,并附上理由。有必要还可以提出需要的补充资料,使预测更加准确。第三轮修改预测,专家根据预测领导小组所反馈的第二轮预测结果和补充资料,再一次进行预测,并像第二轮预测一样附上理由。第四轮最后预测,专家再次根据反馈结果做出最后的预测,并根据领导小组的要求,做出或不做出新的论证。
Delphi中的TChart使用用法2009
Delphi中的TChart使用用法2009 Delphi中的TChart使用用法2009-08-26 19:231、TChart Hello world放一个控件到窗体上,然后写代码加入一个折线数据序列:
var
Series: TLineSeries;
begin
Series := TLineSeries.Create(Chart1);
Series.Add(100, '头部', clRed);
Series.Add(200, '颈部', clGreen);
Chart1.AddSeries(Series);
end;
这样就会生成一个简单的折线图表,要生成其它类型的数据图表,可以添加不同的数据序列
(各种图表的序列类型可以参考帮助文档)。2.如何设置图表的标题?TChart 组件提供了Title属性可以这是图表的标题,包括标题的内容、字体、对齐方式等都可以通过Title属性
设置。
最简单的设置方式:
Chart1.Title.Text.Text := '图表的标题';3.如何修改图表的背景颜色和整个图表的颜色?TChart
是一个窗体控件,可以通过修改Color属性设置图表颜色,这是一种最简单的方式:
Chart1.Color := clWhite;
修改图表部分的背景色可以通过BackColor属性来实现:
Chart1.BackColor := clGreen;
此外,TChart还提供了渐变的背景支持,通过Gradient控制:
Chart1.Gradient.Visible := True;
Chart1.Gradient.Direction := gdFromTopLeft;
Delphi 的绘图功能
Graphics 单元中的类
//Graphics 单元中的类
TGraphicsObject
TFont
TPen
TBrush
TFontRecall
TPenRecall
TBrushRecall
TCanvas
TGraphic
TPicture
TMetafileCanvas
TMetafileImage
TMetafile
TBitmapImage
TBitmap
TIconImage
TIcon
TResourceManager
TBrushResourceManager
TFileFormatsList
Delphi 的绘图功能[1] - TCanvas 的类成员//过程:
Arc
BrushCopy
Chord
CopyRect
Draw
DrawFocusRect
Ellipse
Ellipse
FillRect
FloodFill
FrameRect
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);
Delphi中的TChart使用用法2009
Delphi中的TChart使用用法2009 Delphi中的TChart使用用法2009-08-26 19:231、TChart Hello world放一个控件到窗体上,然后写代码加入一个折线数据序列:
var
Series: TLineSeries;
begin
Series := TLineSeries.Create(Chart1);
Series.Add(100, '头部', clRed);
Series.Add(200, '颈部', clGreen);
Chart1.AddSeries(Series);
end;
这样就会生成一个简单的折线图表,要生成其它类型的数据图表,可以添加不同的数据序列
(各种图表的序列类型可以参考帮助文档)。2.如何设置图表的标题?TChart 组件提供了Title属性可以这是图表的标题,包括标题的内容、字体、对齐方式等都可以通过Title属性
设置。
最简单的设置方式:
Chart1.Title.Text.Text := '图表的标题';3.如何修改图表的背景颜色和整个图表的颜色?TChart
是一个窗体控件,可以通过修改Color属性设置图表颜色,这是一种最简单的方式:
Chart1.Color := clWhite;
修改图表部分的背景色可以通过BackColor属性来实现:
Chart1.BackColor := clGreen;
此外,TChart还提供了渐变的背景支持,通过Gradient控制:
Chart1.Gradient.Visible := True;
Chart1.Gradient.Direction := gdFromTopLeft;
delphi drawtextex使用方法
delphi drawtextex使用方法
Delphi是一种编程语言,其提供了丰富的图形显示能力,其中一个重要的功能是绘制文本。DrawTextEx是Delphi中用于绘制文本的函数之一,它可以在指定的矩形区域内绘制文本,并提供了多种选项来控制文本的格式和布局。本文将一步一步地介绍DrawTextEx函数的使用方法,帮助读者更好地理解和应用这个功能。
第一步:准备工作
在开始使用DrawTextEx函数之前,需要进行一些准备工作。首先,确保你已经安装了Delphi开发环境,并创建了一个新的项目。其次,打开项目的源代码文件,并在uses指令中添加Graphics单元,该单元提供了绘图所需的函数和类型。最后,创建一个需要绘制文本的画布,可以是窗体、画板或任何其他可绘制的对象。
第二步:定义绘制文本的区域
在使用DrawTextEx函数之前,需要先定义一个矩形区域,用来指定文本的绘制区域。可以使用TRect类型来表示这个矩形区域。例如,可以使用以下代码定义一个矩形区域:
var
TextRect: TRect;
begin
TextRect := Rect(10, 10, 200, 100);
end;
上述代码中,Rect函数是Delphi提供的用于创建矩形的函数,该函数接受四个参数,分别表示矩形的左上角和右下角的坐标。通过调整这些参数的值,可以改变矩形的大小和位置。
第三步:设置文本的格式和布局选项
使用DrawTextEx函数绘制文本时,还可以通过设置一些选项来控制文本的格式和布局。这可以通过TTextFormat结构体的各个成员来实现。以下是一些常用的选项:
delphi,如何,画表格
竭诚为您提供优质文档/双击可除
delphi,如何,画表格
篇一:delphi程序代码设计报表
用程序代码设计报表
创建一窗体Form1,unit文件保存为RaveReport.pas,窗体上放置一个Rpsystem控件和一个
button,程序代码如下,一个简单的报表就完成了。
unitRaveReport;
interface
uses
windows,messages,sysutils,Variants,classes,graphics ,controls,Forms,
dialogs,RpRendercanvas,RpRenderpreview,RpRender,RpR enderpdF,Rpbase,
Rpsystem,stdctrls,Rpdefine,RpRave;
tForm1=class(tForm)
button1:tbutton;
Rvsystem1:tRvsystem;
procedureRvsystem1print(sender:tobject); procedurebutton1click(sender:tobject);
private
{privatedeclarations}
public
{publicdeclarations}
end;
var
Form1:tForm1;
implementation
{$R*.dfm}
proceduretForm1.Rvsystem1print(sender:tobject); var
i1:integer;
s1:string[20];
s2:string[20];
delphi xe 的tgpgraphics用法
delphi xe 的tgpgraphics用法
Delphi XE 中的 TGpGraphics 是 GDI+ 图形库的一个关键组件,它提供了丰富的图形绘制功能。使用 TGpGraphics,你可以在 Delphi 应用程序中轻松地绘制各种图形元素,如线条、形状、图像等。下面将详细介绍 TGpGraphics 的一些基本用法和特性。
首先,要使用 TGpGraphics,你需要创建一个其实例。这通常是通过在需要绘制的组件(如窗体或面板)的 Paint 事件处理器中完成的。在 Paint 事件处理器中,你可以获取到当前组件的 GDI+ 图形上下文,即 TGpGraphics 实例。
一旦你有了 TGpGraphics 实例,就可以开始绘制图形了。你可以使用各种方法,如DrawLine、DrawRectangle、DrawEllipse 等来绘制基本形状。这些方法通常需要指定颜色、线条样式、填充样式等参数。例如,你可以使用 DrawLine 方法来绘制一条指定颜色、宽度和样式的线条。
除了基本形状,TGpGraphics 还支持绘制更复杂的图形,如路径和图像。你可以使用BeginPath 和 EndPath 方法来定义一个路径,并使用 MoveTo 和 LineTo 等方法来添加线条到路径中。然后,你可以使用 DrawPath 方法来绘制整个路径。
此外,TGpGraphics 还提供了图像处理的功能。你可以使用 DrawImage 方法来绘制位图图像,并可以指定图像的位置、大小、透明度等属性。你还可以使用 ImageFromFile 方法来从文件中加载图像,并使用各种图像处理方法来对图像进行变换、裁剪、旋转等操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一个windows自带的画图工具是无论如何也不能满足我们的画图需要的,很多效果都需要我们在另外的工具中来实现。这些高级的功能是如何实现的呢,如何操纵一些基本的属性和函数,让它们最终能作出我们想要的效果呢?这里我们以绘制统计图来说明这些问题。
解决思路――
这里,我们暂且先撇开具体的问题,综合地一下讨论画图的问题。
画图工具是基本元素的具体实现,对于我们初学者来说,还是有很好的参考价值的,在delphi 5中有一个自带的工程例子“……Borland\Delphi5\Demos\Doc\Graphex”,这个例子可以实现一些基本的绘图功能。对这个例子多加修改,一定会有所收获的。这里就不列出它的详细代码了,有心的读者可以自己找到这个例子。我这里只是想综合地讨论这方面的问题。使用DELPHI编写绘图软件的灵魂就在于操作画布,画笔和刷子,尽可能地挖掘它们的属性和相关参数的设置。
(一)画布
画布,画笔和刷子之间的关系很明了.其实,画笔和刷子都是画布的一个属性.而画布也只是TForm,TImage,TShape等组件对象的一个属性,专门负责与图象相关的信息打交道.它的主要作用可以概括如下几点:
1.指定使用画笔,刷子和字体的使用类型;
2.绘制和填充指定形状的线或图形;
3.修饰和改变图象;
画布的主要属性有:
Brush--指定填充图形和背景的样式
CanvasOrientation--指定画布的定位类型,有coLeftToRight, coRightToLeft两个属性;
ClipRect--指定剪切矩形的边界;
CopyMode--指定图形图象的复制模式;
Font--指定画布上使用的字体;
Handle--为画布指定窗口GDI对象的设备描述表;
LockCount--指定画布被别的线程锁定的次数;
Pen--指定画布上使用的画笔,具体见下面描述;
PenPos--指定画笔当前的位置;
Pixels--指定当前剪切矩形的象素颜色;
TextFlags--指定字体在画布上的显示方式,有ETO_CLIPPED,ETO_OPAQUE,ETO_RTLREADING,ETO_GL YPH_INDEX,ETO_IGNORELANGUAGE,ETO_NUMERICSLOCALETO_NUMERIC SLATIN等值可选;
画布相关的API函数及其注释如下:
Arc--按指定方式画一条弧;
BrushCopy--把位图复制到指定的画布的矩形中,用画布刷子颜色替换位图的颜色;
Chord--按指定方式画弦;
CopyRect--从一个矩形区域复制部分图象到另一个矩形区域;
Draw--用指定参数在指定位置画图;
DrawFocusRect--按指定焦点风格,通过异或操作来绘制一焦点矩形;
Ellipse--按指定参数画一椭圆;
FillRect--按指定的刷子填充一矩形;
FloodFill--使用当前选定的刷子填充指定设备描述表中的一块区域;
FrameRect--使用指定的方式画一矩形的边框;
LineTo--使用当前画笔从当前位置到指定点画一条直线;
Lock--防止其它线程在画布上绘图;
MoveTo--指定一新的当前画笔位置;
Pie--按指定方式画饼状图;
PolyBezier--按指定方式画多条贝塞尔线;
PolyBezierTo--按指定方式画多条贝塞尔线并更新当前的画笔位置值; Polygon--绘制一个由多个顶点的任意序列组成的多边形;
Polyline--使用当前画笔画一系列的多边形;
Rectangle--绘制矩形;
RoundRect--绘制圆角矩形;
StretchDraw--在指定的矩形区域通过指定的绘图参数来绘制图形; TextExtent--返回使用当前字体设置的字符的象素宽度和高度等参数; TextHeight--返回使用当前字体设置的字符的象素高度;
TextOut--在指定位置绘制文本,并更新画笔的当前位置;
TextRect--在一剪切矩形区域中绘制文本;
TextWidth--返回使用当前字体设置的字符的象素宽度;
TryLock--对当前没加锁的画布进行加锁;
Unlock--对当前加锁的画布进行解锁;
例如以下是两个小例子:
procedure TForm1.Button2Click(Sender: TObject);
var
ARect: TRect;
begin //实现了剪切效果;
with Image1.Canvas do
begin
CopyMode := cmWhiteness; //设置复制模式;
ARect := Rect(0, 0, Image1.Width, Image1.Height);
CopyRect(ARect, Image1.Canvas, ARect);
CopyMode := cmSrcCopy; //恢复复制模式;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
W: Word;
begin //在窗口中画一条彩线;
for W := 10 to 200 do
Canvas.Pixels[W, 10] :=RGB(random(255),random(255),random(255));; end;
灵活使用这些函数及其内部参数会让我们得到意想不到的效果;
(二) 画笔
画笔是一个GDI对象,定义了绘制直线或轮廓形状的方法.