版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目1Canvas绘制基本图形项目说明本项目应用Canvas对象实现了四种基本图形(直线、椭圆、矩形、圆角矩形)的绘制。单击“绘图”菜单选择想要绘制的图形,然后在窗口空白处拖动鼠标即可绘制图形,单击“清除”可以擦除窗体中已绘制的图形,运行效果如图7-1所示。项目分析1.窗体中的组件(1)MainMenu组件,在组件模板“Standard”选项卡上,该组件设置了两个菜单“绘图”和“清除”。“绘图”菜单包括“划线”、“矩形”、“椭圆”、“圆角矩形”(见图7-2);“清除”菜单只有“清除”项,用于清除窗体中已绘制的图形。(2)窗体中组件的属性设置如表7-1所示。返回下一页项目1Canvas绘制基本图形(3)窗体设计效果如图7-3所示。2.项目中的事件(1)在type的位置定义一个枚举类型TDrawingTool,表示在此项目中可以绘制直线、矩形、椭圆、圆角矩形,代码如下:TDrawingTool=(dtLine,dtRectangle,dtEllipse,dtRoundRect);(2)在public下面定义公共变量,代码如下:brushstyle:TBrushStyle;//画刷样式penstyle:TPenStyle;//画笔样式penwide:Integer;//画笔宽度flag:Boolean;//判断是否进行绘图操作startpt,endpt:TPoint;//绘图的起始和结束点drawing:TDrawingTool;//要绘制的图形返回上一页下一页项目1Canvas绘制基本图形(3)在public下面自定义绘制图形过程DrawShape:根据调用DrawShape过程的不同的drawing值,应用Canvas绘制图形。过程声明如下:procedureDrawShape(TopLeft:TPoint;BottomRight:TPoint;AMode:TPenMode);(4)窗体的鼠标按下事件OnMouseDown:在这个事件过程中,始终保持着flag为True,即保持在绘图状态。Tpoint类型的全局变量startpt记录鼠标的坐标位置,作为绘图的起点。Tpoint类型的全局变量endpt被赋值为startpt,表示鼠标按下时起止点是重合的。代码如下:
flag:=True;startpt:=Point(X,Y);endpt:=startpt;返回上一页下一页项目1Canvas绘制基本图形(5)窗体的鼠标拖动事件OnMouseMove:这个事件的作用是当拖动鼠标时,用表示终点的变量endpt记录鼠标的当前位置,并在绘制起点和终点两次调用绘图过程DrawShape,用以产生绘制过程中所绘图形随鼠标绘制的动态效果。代码如下:
DrawShape(startpt,endpt,pmNotXor);endpt:=Point(X,Y);DrawShape(startpt,endpt,pmNotXor);返回上一页下一页项目1Canvas绘制基本图形(6)窗体的鼠标抬起事件OnMouseUp:这个事件用于返回画笔默认的工作方式,并以鼠标的起点和终点重画所确定的形状,最后再把flag置为False,表示绘图完毕。代码如下:
DrawShape(startpt,Point(X,Y),pmCopy);flag:=False;(7)“划线”、“矩形”、“椭圆”、“圆角矩形”事件:把drawing变量分别赋值为相应的枚举值。项目实现返回上一页下一页项目1Canvas绘制基本图形学习支持1.Canvas的绘图方法在Delphi7中提供了一种灵活的作图方式,即Canvas(画布),它封装了WindowsAPI的GDI,可以把Form、Image等组件作为画布,在画布上绘制直线、矩形、椭圆、多边形等基本图形。现在就将常用的方法作如下介绍,如表7-2所示。2.画笔Pen
画笔的Mode属性是TpenMode类型,用于设置画笔的工作方式。程序可以使用Mode属性的16种值,它们决定画笔与当前屏幕上颜色的运算关系,不同的属性值会产生不同的显示效果。三种常用的属性如表7-3所示。返回上一页下一页项目1Canvas绘制基本图形3.OnMouseDown、OnMouseMove、OnMouseUp鼠标事件如果鼠标被按下就会触发OnMouseDown事件;不管鼠标是否被按下,只要移动了鼠标就会触发OnMouseMove事件;如果将鼠标键松开就会触发OnMouseUp事件。这三个事件总是针对某个组件而言的,常见的是在某个组件上绘制图形,那么在该组件区域内返回的坐标总是指向对于该组件的左上角坐标。返回上一页项目2画笔的应用1项目说明本项目是在项目1的基础上添加了“画笔pen”的功能,能够用不同的画笔风格绘制基本图形,效果如图7-5所示。项目分析(1)窗体中的主菜单增加了“画笔pen”菜单,菜单项包括“实线”、“虚线”、“点线”、“一点线”、“两点线”。(2)窗体中组件的属性设置如表7-4所示。(3)窗体设计效果如图7-6所示。(4)项目中添加的事件。“实线”、“虚线”、“点线”、“一点线”、“两点线”各自添加了OnClick事件,可以使用不同风格的画笔状态绘制图形。返回下一页项目2画笔的应用1项目实现学习支持Canvas的画笔Pen
用于画各种线条,默认的画笔颜色是黑色,笔宽是1像素,默认的画笔风格Style是实线,工作方式是覆盖画布上原有的像素。Pen的常用属性有:
Color:画笔的颜色。
Width:画笔的宽度。
Style:画笔的风格,如表7-4所示。
Mode:画笔的模式,如表7-5所示。返回上一页项目3画刷的应用项目说明本项目是在项目1和项目2的基础上增加了画刷brush的功能和颜色选择功能,使绘制的图形效果更加丰富,运行效果如图7-8所示。项目分析1.窗体中增加的内容(1)窗体中的主菜单增加了“画刷brush”菜单,菜单项包括“画刷颜色”、“实线填充”、“水平线填充”、“垂直线填充”、“交叉线填充”、“上斜线填充”、“下斜线填充”、“斜交叉填充”。(2)窗体中“画笔pen”菜单,添加了一项“画笔颜色”。(3)ColorDialog组件,在组建模板“Dialog”中。(4)窗体中组件属性设置如表7-6、表7-7所示。返回下一页项目3画刷的应用(5)窗体设计效果如图7-9所示。2.项目中增加的事件(1)菜单项“画刷颜色”、“实线填充”、“水平线填充”、“垂直线填充”、“交叉线填充”、“上斜线填充”、“下斜线填充”、“斜交叉填充”各自添加了OnClick事件,可以使用不同风格的画刷状态绘制图形。(2)“画笔颜色”OnClick事件,设置画笔颜色为ColorDialog中选中的颜色。(3)“画刷颜色”OnClick事件,设置画刷颜色为ColorDialog中选中的颜色。项目实现返回上一页下一页项目3画刷的应用学习支持Canvas的画刷BrushBrush是Canvas的属性,用于设置图形内或画布上某区域的填充方式,它有Color和Style两个子属性。可以通过这两个属性来设定填充的颜色、图案等。Color属性与Pen的Color属性一样,Style属性为枚举类型,用来定义画刷填充图形的风格,如表7-8所示。返回上一页下一页项目4放大镜项目说明本项目使用了Image组件和自定义的StretchBlt函数完成了具有放大镜功能的示例。当鼠标移动到窗体左边的缩略图上时,可以在窗体的右边看到放大的效果,运行效果如图7-11所示。项目分析(1)向窗体上添加两个Image组件,其中一个Image组件充当原图片显示的载体。另一个Image可以显示放大后的图像。(2)窗体中组件的属性设置如表7-9所示。(3)窗体设计效果如图7-12所示。返回下一页项目4放大镜(4)程序首先会调用StretchBlt函数,以鼠标当前位置作为中心点,以边长为250选中Image1组件上的局部图像,并放大此局部图像到Image2组件上。然后通过调用Image2组件的Refresh方法以刷新Image2组件的显示。项目实现学习支持Canvas常用属性如表7-10所示。返回上一页项目5设置桌面墙纸项目说明本项目完成了设置桌面墙纸的功能。单击“浏览”按钮可以选择想要设为桌面的图片;在位置下拉框中选择“居中”、“平铺”或“拉伸”,用于设置图片在桌面的状态;单击“应用”按钮把设置好的图片应用于桌面上,效果就像在系统中设置桌面背景一样,运行效果如图7-13的所示。返回下一页项目5设置桌面墙纸项目分析1.向窗体上添加的组件(1)一个GroupBox组件,作为Image组件的容器。(2)一个Image组件,用于显示预览图片。(3)三个Button组件:“浏览”按钮,用于浏览选择图片;“应用”按钮,用于把选择的图片设为桌面墙纸;“取消”按钮,用于退出程序。(4)一个OpenPictureDialog组件,用于打开图片。(5)一个ComboBox组件用于设置墙纸的显示方式:居中、拉伸、平铺。(6)窗体中组件的属性设置如表7-11所示。(7)窗体设计效果如图7-14所示。返回上一页下一页项目5设置桌面墙纸2.项目中的事件(1)在程序的uses段中添加对Registry的引用。(2)“浏览”按钮:OnClick事件,当单击该按钮时会弹出一个提示用户选择墙纸图片的对话框,如果确认了选中的图片文件,那么就会在Image组件中预览图片。(3)“应用”按钮:OnClick事件,如果用户选择了墙纸文件,并且选择了墙纸的显示方式,那么就可以单击此按钮来设置墙纸。(4)“取消”按钮:OnClick事件,用于退出程序。项目实现返回上一页表7-1MainMenu1的设计返回表7-2绘制基本图形的方法返回表7-3画笔的Mode主要属性返回表7-4“画笔pen”菜单的设置返回表7-4Style的主要属性返回表7-5Mode的主要属性返回表7-6在项目2的基础上“画笔pen”菜单添加的内容返回表7-7“画刷brush”菜单
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026印花设计面试题及答案解析
- 2026应用金融面试题及答案大全
- 2026游戏动画面试题及答案解析
- 2026年山东省平度市高二化学下册期末考试模拟考试卷附参考答案(典型题)
- 2026年甘肃省临夏市高二化学下册期末考试模拟检测卷(考点梳理)附答案
- 2026年江苏省昆山市高二化学下册期末考试模拟考试卷(能力提升)附答案
- 2026年河南省济源市高二化学下册期末考试模拟检测卷附答案(轻巧夺冠)
- 2026年福建省武夷山市高二化学下册期末考试模拟卷含答案(夺分金卷)
- 2026云南信托面试题库及答案
- 2026年浙江省诸暨市高二化学下册期末考试模拟测试卷及参考答案【新】
- 下一代经销商白皮书:中国快消品流通洞察-2026.3.18
- 2026年共青团培训结业考试题库(含答案)
- ISO14001-2026环境管理体系要求及使用指南标准培训教材
- 公司培训基地建设方案
- 食品留样管理制度培训
- 2026年湖北高考物理考试试题及答案
- 驾培行业财务制度
- 厂中厂安全培训教学课件
- 煤矿生产区队交接班制度
- 酒店标准品牌化运营方案
- 银行消防安全教育培训课件
评论
0/150
提交评论