canvas教程

用DELPHI中Canvas特性开发图形软件(2)

字号+ 作者:H5之家 来源:H5之家 2015-09-30 15:02 我要评论( )

通过剪贴板可以完成拷贝和剪贴的功能。Canvas不直接支持剪贴板,完成Canvas上图画拷贝和张贴关键技巧是通过一个Tbitmap变量,把Canvas上的图形先复制到Tbitmap上,再把Tbitamp和window的剪贴板连起来,反过来也一样

  通过剪贴板可以完成拷贝和剪贴的功能。Canvas 不直接支持剪贴板,完成Canvas上图画拷贝和张贴关键技巧是通过一个Tbitmap变量,把Canvas 上的图形先复制到Tbitmap上,再把Tbitamp和window的剪贴板连起来,反过来也一样。

  Delphi通过鉴定Wizard建立的SDI程序中,有关 Edit命令的Click事件定义在ActionList控件中,相关代码如下: //拷贝图形到剪贴板 procedureTSDIAppForm.EditCopy1Execute(Sender:TObject); var bmp:tbitmap;//设置一个图形变量 begin bmp:=tbitmap.Create; bmp.Width:=rect.Right+10; bmp.Height:=rect.Bottom+10; bmp.canvas.CopyRect(rect,sdiappform.canvas,rect); clipboard.Assign(bmp); bmp.free; end; //从剪贴板上复制 procedureTSDIAppForm.EditPaste1Execute(Sender:TObject); var bmp:tbitmap;//设置一个图形变量 begin ifclipboard.HasFormat(CF_BITMAP)then begin bmp:=tbitmap.create; bmp.Assign(clipboard); sdiappform.Canvas.draw(0,0,bmp); bmp.free; end elseifclipboard.HasFormat(CF_TEXT)then begin str:=clipboard.AsText; detectI:=0; invalidate; end; end; //剪下图形拷贝到剪贴板 procedureTSDIAppForm.EditCut1Execute(Sender:TObject); begin EditCopy1Execute(sender); withsdiappform.Canvasdo begin copymode:=cmwhiteness; copyRect(rect,sdiappform.Canvas,rect); CopyMode:=cmSrcCopy; end; end;   也可以把已有的图形文件直接拷贝在Canvas上,本程 序通过菜单Open命令完成这一操作。 procedureTSDIAppForm.FileOpen1Execute(Sender:TObject); var bmp:Tbitmap; currentfile:string; begin ifOpenDialog.Executethen begin currentfile:=OpenDialog.filename; ifcurrentfile$#@60;$#@62;then try bmp:=tbitmap.Create; bmp.LoadFromFile(currentfile); sdiappform.Canvas.StretchDraw(rect,bmp); finally bmp.Free; end; end; end;   本程序只是简单的讨论了Canvas绘图功能,离图形软 件包还相差很远,而且打开图形文件显示在Canvas中还有些问题,希望读者中编程高手能帮 我改正。

作者:-责任编辑:)

欢迎在新浪微博上关注我们

评论

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • html5canvas核心技术图形、动画与游戏开发源码

    html5canvas核心技术图形、动画与游戏开发源码

    2017-05-02 17:42

  • 打印html5中Canvas的方法

    打印html5中Canvas的方法

    2017-05-01 15:03

  • HTML5+Canvas调用手机拍照功能实现图片上传(下)

    HTML5+Canvas调用手机拍照功能实现图片上传(下)

    2017-04-30 17:00

  • HTML5新特性详解(三)

    HTML5新特性详解(三)

    2017-04-30 16:03

网友点评