Delphi软件开发技术 教学课件 ppt 作者 张世明 P6

上传人:E**** 文档编号:89346474 上传时间:2019-05-23 格式:PPT 页数:220 大小:998.50KB
返回 下载 相关 举报
Delphi软件开发技术 教学课件 ppt 作者  张世明 P6_第1页
第1页 / 共220页
Delphi软件开发技术 教学课件 ppt 作者  张世明 P6_第2页
第2页 / 共220页
Delphi软件开发技术 教学课件 ppt 作者  张世明 P6_第3页
第3页 / 共220页
Delphi软件开发技术 教学课件 ppt 作者  张世明 P6_第4页
第4页 / 共220页
Delphi软件开发技术 教学课件 ppt 作者  张世明 P6_第5页
第5页 / 共220页
点击查看更多>>
资源描述

《Delphi软件开发技术 教学课件 ppt 作者 张世明 P6》由会员分享,可在线阅读,更多相关《Delphi软件开发技术 教学课件 ppt 作者 张世明 P6(220页珍藏版)》请在金锄头文库上搜索。

1、第6章 Delphi图形及多媒体应用,Delphi提供了一些图形类组件,最常用的有绘图(图像)组件、图形列表组件、图形栅格组件、图表组件、图形日历组件、多媒体组件等。,6.1 绘图组件 6.2 图形列表 6.3 图形栅格 6.4 图形日历 6.5 多媒体组件,6.1 绘图组件,如果离开了图形、图像,基于Windows的应用程序就会变得非常单调。,本节将介绍如何在屏幕上、窗体上或打印机上绘制图形,包括绘制点、线、矩形、多边形、椭圆、位图以及文本等。,6.1.1 Shape组件,Shape(几何图形)组件可以显示一些常见的几何图形,如圆、矩形、正方形和椭圆等,该组件位于组件板的Additional

2、选项卡上。,1.主要属性,Shape组件主要属性,Brush属性有两个子属性。第一个子属性是Color,用于设定几何图形的填充颜色;第二个子属性是Style,用于设定几何图形的填充图案。,Style子属性有8种取值:bsBDiagonal、bsClear、bsCross、bsDiagCross、bsDiagonal、bsHorizontal、bsSolid和bsVertical。,Pen属性实际上是TPen对象,它有四个子属性:Color、Mode、Style和Width。,其中Color子属性表示画笔的颜色;Mode子属性表示画笔与屏幕上原有点的混合形式;Width子属性表示线宽;Style

3、子属性表示线型。,属性Shape有stCircle(圆)、stEllipse(椭圆)、stRectangle(矩形)、stRoundrect(圆角矩形)、stRoundsquare(圆角正方形)、stsquare(正方形)6种取值,表示6种不同的几何图形。,6.1.2 PaintBox组件,PaintBox(画板)组件,可让用户使用绘图语句在一块区域中作图,PaintBox组件位于组件板的System选项卡上,,主要使用Canvas(画布)属性来进行绘图,它是类TPaintBox的对象。,6.1.3 画布对象,所有能够绘制图形的组件或区域都有一个Canvas成员,它是类TCanvas的对象。,

4、Canvas对象的属性,1画布对象的图形基础 Canvas(画布)对象在Delphi的绘图中起着关键的作用,它可以作为窗体、图像、图形组件或打印对象的数据成员。下面介绍Canvas对象的作图基础:,(1)颜色 要指定绘图的颜色,可以在对象查看器中预定义,或者在程序中给组件的Color成员赋值,,也可以利用有些组件如ColorDialog、ColorGrid来指定一个颜色,然后将其中的Color数据成员赋给组件的Color成员,,还可使用ColorToRGB(Color:Tcolor)函数给Color成员配置颜色。,(2)画点 Canvas对象用二维数组Pixels画点,例如:,Canvas.P

5、ixel20,10:=clRed; /将在坐标(20,10)处画一个红色的点,(3)画笔 画笔成员Pen是TPen对象,用来控制几何图形的绘制方式,与Shape组件的Pen属性相同,,有四个子属性: Color(颜色)、Mode(模式)、Style(线形)和Width(线宽),Pen属性的Mode用来确定画笔与屏幕上原有点的混合方式,Color用来设置绘图时的前景色。,(4)刷子 Canvas对象中的Brush(刷子)成员确定填充某个闭合图形的方式,和Shape组件的Brush成员也完全一样,因为Shape组件包含Canvas对象。,(5)填充 填充封闭图形有两种方法,第一种方法是绘制图形前先

6、给画布对象的Brush属性赋值,,通过其Color子属性指定填充颜色,通过其Style子属性指定填充方式。这样,在绘制图形的同时就绘填充图形。,2绘制简单图形,(1)直线 Canvas对象画线调用MoveTo和LineTo两个方法。,MoveTo方法可以定位线的起始点,LineTo方法画线,所以要在(x1,y1)和(x2,y2)之间画线,可以使用语句: Canvas.MoveTo(x1,y1); Canvas.LineTo(x2,y2);,(2)矩形 Canvas对象画线调用Rectangle方法,语句如下: Canvas.Rectangle(x1,y1,x2,y2);,其中,(x1,y1)是

7、矩形的左上角,(x2,y2)是矩形的右下角。如果|x2-x1|等于|y2-y1|,则为正方形。,(3)椭圆 Canvas对象画椭圆调用Ellipse方法,语句如下: Canvas.Ellipse(x1,y1,x2,y2);,其中,(x1,y1)是椭圆外接矩形的左上角,(x2,y2)是椭圆外接矩形的右下角。如果|x2-x1|等于|y2-y1|,则为圆。,(4)圆角矩形 Canvas对象画圆角矩形调用RoundRect方法,语句如下: Canvas.RoundRect(x1,y1,x2,y2,r1,r2);,其中,(x1,y1)和(x2,y2)分别是圆角矩形的外接矩形的左上角和右下角,r1和r2则

8、为圆角的长短半径。,(5)多边形 Canvas对象画多边形调用Polygon方法,语句如下: Canvas.Polygon(points);,其中,points是类TPoint的一个数组,包含着多边形的顶点坐标,定义如下: Points:Arrary of TPoint;,(6)折线 Canvas对象画折线调用Polyline方法,语句如下: Canvas.Polyline(point(x1,y1),point(x2,y2),point(xn,yn);,其中,(x1,y1)、(x2,y2)、(xn,yn)为折线各转折点的坐标。,(7)字符串显示 在作图区域中有时要用到字符串,可以使用TextO

9、ut方法如下: Canvas.TextOut(x,y,text);,其中,(x,y)是输出字符串的起点,text是要输出的文本。,6.1.4 Image组件,Image组件位于组件板的Additional选项卡中,可以显示各种以文件形式存储的图形。,Image组件基本属性,要在Image组件中装入图像,有两种方式:,第一种方式是在设计时用Picture属性静态装载图像;,第二种方法是在运行时用LoadFromFile函数动态装载图像。,如果要在设计时静态装载图像,单击Image组件Picture属性右侧属性值中的省略号按钮,,打开Picture Editor(图像编辑器)对话框,单击Load按

10、钮选择要装入的图像,,然后单击OK按钮,就可以在Image组件中预装入图像。,如果要在程序运行时动态装入图像,可以使用TPicture类的方法LoadFromFile来装载图像,,可以装入的图形文件类型有:.bmp文件、.ico文件、.wmf文件、.emf文件,其语法为:,Image.Picture.LoadFromFile(图像文件的完整路径名文件名); 利用Image组件还可以方便地存储位图,其语法为:,Image.Picture.SaveToFile(图像文件的完整路径名文件名); 这些都是其他一些绘图组件所不具备的优点。,另外,所有有Canvas成员的组件或区域都能绘图。,用户甚至可以

11、直接在窗体上绘图。但是要绘制位图的话,就得使用Image组件。,使用Image组件,不是在窗体表面绘图,而是在内存中的位图上绘图,然后再向窗体的表面复制位图。,这样,一旦发生OnPaint事件时,不必重绘位图,而是用组件将位图复制回屏幕。,6.1.5 绘制图元文件,在介绍图元文件之前,首先介绍标量图 和矢量图的概念。,位图文件记录了位图中每个象素的状态,称为标量图。,标量图的不足之处在于当标量图缩放时,图形的形状将会发生变化。,与标量图相对的矢量图,矢量图记录的不是图形每个象素的状态,而是保存重绘图形所需的信息,,如直线的起始点与结束点,椭圆的数学表示等,矢量图将直线、椭圆等元素称为图形的实体

12、或图元。,这样,当图形进行缩放时,将按照图形中各实体或图元的数学表示重绘,从而保持图形的形状不变。,矢量图的格式有很多种,只有一种完全由Windows操作系统支持,,就是Windows图元文件(Windows Metafile Format,WMF)。,该格式在32位Windows中被扩展成扩展图元文件(Extended Metafile Format,EMF)。,Delphi通过TMetafile类、TMetafileCanvas类和TmetafileImage类来支持Windows图元文件。,其中TMetafileImage类保存图元文件的句柄信息。,1TMetafile类 TMetafi

13、le类用于处理图元文件自身,带有装载图元文件和保存图元文件的对象方法,以及确定图元文件主要特性的属性。,TMetafile类的一个重要属性是Boolean型的Enhanced属性,当属性值为True时,文件格式为扩展图元文件,扩展名为.EMF;,当属性值为False时,文件格式为Windows图元文件,扩展名为.WMF。,TMetafile类的Height属性和Width属性分别用于指定图元文件的大小,如果不指定图元文件的大小,图元文件就可能会产生许多无用的空白区。,TMetafile类有两个函数LoadFromFile和SaveToFile分别用来打开和保存图元文件。,2TMetafileC

14、anvas类 TMetafileCanvas类是TCanvas类的派生类,是用于绘制图元文件的画布类。,为了生成图元文件,首先创建一个TMetafile对象,然后使用TMetafileCanvas类的对象的构造器CreatWithComment与TMetafile类对象相连。,然后就可以用TMetafileCanvas类的绘图函数进行图元文件的绘制工作了。,由于TmetafileCanvas类是Tcanvas类的派生类,因此Tcanvas类的画刷Brush属性、画笔Pen属性、字体Font属性,以及绘图函数TmetafileCanvas类都可以使用。,图元文件绘制完毕后,应该使用方法Free对

15、TmetafileCanvas类进行释放。,3TMetafileImage类 TMetafile类内部封装有一个TMetafileImage类的对象,该类包含图元文件的特殊信息,,这些信息包括标准的扩展图元句柄HEnHMetafile的指针和调色板句柄Hpalette的指针,这两个指针的结构均由Windows定义。,4显示图元文件 要想显示图元文件,需要使用TCanvas类对象的Draw或StretchDraw方法,将图元文件作为参数传给这两个方法。,其中Draw方法用于按原大小绘制图元文件,StretchDraw方法用于按比例绘制图元文件。,6.1.6 打印图形,如果要打印图形,就得使用TP

16、rinter对象。要想使用TPrinter对象,先将在主项目文件中的uses语句中包括Printers单元。,包括Printers单元后,用户不必申明TPrinter对象,因为Printers单元自动申明了一个TPrinter类的对象Printer。,打印图形时,要在调用TPrinter类的两个方法BeginDoc和EndDoc之间调用所有真正的画图方法。,由于TPrinter类自身带有Canvas对象,因此这并不难实现。,Begin Printer.BeginDoc; Printer.Canvas.Rectange(5,15,95,105);,Printer.Canvas.Ellipse(95,95,145,150); Printer.EndDoc; End;,其中BeginDoc和EndDoc两个

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号