在EPX下基本的图形绘制方法解答.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EPX下基本的图形绘制方法 2015-07-02 主讲:【司令】ePx??wGm 我现在来讲一下在EPX下基本的图形绘制方法 首先,在EPX中绘制图形,使用到的基本类是TCanvas,叫画布,在其它的语言中也是相同的叫法 TCanvas具有以下一些重要的属性和方法 TCanvas对象是一个用于绘图的组件,Delphi利用这个组件为用户提供了一个绘制图形的区域,在这个区域上,程序可实现各种绘图功能,很多组件(如TImage、TMemo)的Canvas属性就是TCanvas对象。在组件上绘制图形就是在组件的画布上绘制。TCanvas的Brush、Pen、Font属性分别是TBrush、TPen、TFont对象,它们用于定义绘制图形的风格。 画布的笔的位置定义在PenPos属性中,可用MoveTo方法来移动笔。如果要在画布上输出文本,可用Textout方法。 基本的属性与方法掌握后,我们先要知道哪些控件具有画布属性,也就是说我们可以用哪些控件来绘图呢? 在EPX中,用来绘图最好的对象就是TImage控件 当然TForm等也有Canvas属性,也可以用来绘图 好的,知道了TImage对象有Canvas属性了,是不是可以直接使用了呢?回答是“否”。 因为TImage并不直接具有Canvas属性,不能直接绘制图形 在Image上绘制图形,需要借助TBitmap来实现 也就是要借助TImage的Picture.Graphic属性来实现 下面我们来以代码示例说明一下如何在TImage控件上绘制一条直线 var Canvas: TCanvas; //首先创建Graphic对象 Image1.Picture.Graphic := TBitmap.Create; //然后取出Canvas Canvas := TBitmap(Image1.Picture.Graphic).Canvas; //接下来就可以直接绘图了 Canvas.MoveTo(50,50); //将画笔移动到坐标为50,50的这一点 Canvas.LineTo(300,100); //画笔落下开始画线,直到到坐标300,100处停止 我来试一下上面的代码,看看效果是什么样的,大家也可以试一下 【军长】伟伟(695131235) 10:06:58 不会 Image1.Picture.Graphic := TBitmap.Create; Image1.Picture.Graphic.Width := Image1.Width; Image1.Picture.Graphic.Height := Image1.Height; 需要在创建Bitmap后,设置一下位图的大小 不过遗憾的是在Panel中,EPX暂时未开放Canvas属性 不能直接画图,当然是有办法的,现在就不讲了,避免大家搞混淆,慢慢地到后面大家都学会了,就方便讲了 通过以上代码,我能够画出这条??线,大家也可以画出这条直线 接下来再来绘制一个圆 和上图对比一下,可以发现文字已经没有再遮盖直线了 EPX中Canvas绘图函数有几处与DELPHI不一样的地方 例如,绘制一个矩形,在DELPHI中有两种参数传递方法: 而EPX中则只允许使用第一种 AddMethod(procedure Draw(X, Y: Integer; Graphic: TGraphic), CallMethod); AddMethod(procedure Ellipse(X1, Y1, X2, Y2: Integer), CallMethod); AddMethod(procedure LineTo(X, Y: Integer), CallMethod); AddMethod(procedure MoveTo(X, Y: Integer), CallMethod); AddMethod(procedure Rectangle(X1, Y1, X2, Y2: Integer), CallMethod); AddMethod(procedure RoundRect(X1, Y1, X2, Y2, X3, Y3: Integer), CallMethod); AddMethod(procedure StretchDraw(X1, Y1, X2, Y2: Integer; Graphic: TGraphic), CallMethod); AddMethod(function TextHeight(const Text: string): Integer, CallMethod); AddMethod(procedure TextOut(X, Y

您可能关注的文档

文档评论(0)

a336661148 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档