上一题下一题
跳转到
 
 
  世界如此多姿,发展如此迅速,窥一斑未必还能知全豹。但正如万花筒一样,每一个管窥都色彩斑斓。  
 
 
  知识通道 | 学习首页 | 教师首页 | PK首页 | 知识创造首页 | 企业首页 | 登录
 
本文对应知识领域
DELPHI语言编程基础(19)
作者:未知 申领版权
2010年12月12日 共有 1745 次访问 【添加到收藏夹】 【我要附加题目
受欢迎度:

    
    第九章:图像管理
    deplhi提供了一个tcanvas(画布)类来供用户解决图形的处理问题.而在vcl内就有许多可视化组件都包含canvas属性.也就是说,你可以在包含有canvas属性的可视化组件上面绘制图形如:tform,tlistbox,timage等组件,其实我们要这样想,本来要某个组件上画图是非常复杂的,你必须去调用windows 关于图像的api函数去达到目的,但是delphi把这些复杂的操作都封装在tcanvas类中去了,只留下一些接口(也就是用户使用的绘图函数) 与用户交互。这就是面向对像中的封装性的体现
    delphi提供了许多绘图组件,它们分别是:tcanvas,tpen,tbrush,tcolor,tpicture,timage,tbitmap类等以下我们就针对这些组件来说明其用法,有趣的在delphi的组件面板中,我们根本就看不到这些对应的组件,我们必须在程序中动态的创建这些类的实例。如此一来,才能够使用类中的方法:
    
    tcanvas组件的用法
    tcanvas组件是一个用于绘图的画布,在这块画布区域内,你可以利用此组件所提供的方法来实现各种绘图功能很多vcl的可视化组件如:tform,tmemo等)的canvas属性就是tcanvas组件.在组件是绘图就等于在组件的画布上绘制。tcanvas的brush,pen,fon属于则分别是tbursh,tpen,tfont组件。它们用来定义绘制图形的笔刷画笔,字体等数据。在画布上绘图必须知道画笔的所在位置,这个位置数值是定义在penpos属性中的,而如果想移动画笔所在的位置,可用moveto方法。若是想要在画布上输入文字,则可用textout方法.基本上tcanvas有很多方法       如下:
    copyrect:把某个画布组件上的某部分图片复制到当前的画布上。比如:
    re:=rect(10,10,100,100);
    bi:=tbitmap.Create;
    bi.LoadFromFile('c:\test\sn.bmp');
    form1.Canvas.CopyRect(re,bi.Canvas,re);
    draw(x,y:integer;graphic:tgraphic):把某个画布组件上的全部图形画到画布上
    ellips(rect):
    lineto(x,y:integer):从当前画笔所在位置开始画一条线到(x,y)所指定的位置,并把画笔移动到(x,y) 
    moveto(x,y:integer):将画笔移动到(x,y)位置。画笔当前位置在存放到penpos属性中,是只读属性  
    Rectangle(rect):画一个矩形
    RoundRect(x1,y1,x2,y2,x3,y3):画一个圆角矩形
    polygon(p):画一个多边形:
    
    其中p为坐标结构数组:
    如下:
    var p:array[0..2] of tpoint;
    form1.Canvas.Rectangle(0,0,form1.ClientWidth div 2,form1.ClientHeight div 2);
    form1.Canvas.RoundRect(0,0,form1.ClientWidth div 2 ,form1.ClientHeight div 2,10,10);
    form1.Canvas.Ellipse(0,0,form1.ClientWidth div 2,form1.ClientHeight div 2);
    p[0].X:=0;p[0].Y:=0;
    p[1].X:=50;p[1].Y:=0;
    p[2].X:=75;p[2].Y:=50;
    p[3].X :=25;p[3].Y:=50;
    p[4].X:=0;p[4].Y:=0;
    form1.Canvas.Polygon(p);
    举列:
    tpen:       
    tpen组件是用来定义在画布上绘制各种线条的画笔数据,画笔的颜色在属性color中定义。线条的宽度在属性width中定义,style属性定义了线条的各种类型。
    
    tbrush:
    tbrush:刷组件是用来填充图形区域.style属性则定义了笔刷填充图形的形式,bitmap则决定要填充的图片数据。可以用位图,位图大小为8*8,color则决定的要填充的颜色
    Bitmap: TBitmap;
    begin
    Bitmap := TBitmap.Create;
    Bitmap.LoadFromFile('c:\a.bmp');
    Form1.Canvas.Brush.Bitmap := Bitmap;
    Form1.Canvas.Rectangle(rect(10,10,100,100)); [填充方形]
    bitmap.Free;
    
    tpicture:
    tpicture组件可以保存位图,图标等格式的图片数据。graphic属性中包括了图片的格式,图片的高度和宽度分别保存在height,width中。loadfromfile方法则是用来加载图形文件.savetofile方法可以保存图形。
    
    
    要把图片复制到剪切板上可以用tclipboard组件的assign方法,可以使用下面的方法把剪切板上的图形粘贴到image1上
    A:把图形复制到剪贴板:
    clipboard.Assign(form1.Image2.Picture);
    B:把剪贴板上的图形粘贴
    if clipboard.HasFormat(cf_bitmap) then
    form1.Image1.Picture.Assign(clipboard); 

    

 

相关新闻

肢体语言塑造你自己
每一个程序员要遵守的一些优秀编程风格
杂谈语言(之六)——文字改革(下):一失足成千古恨的文字改革
杂谈语言(之五)——文字改革(上):半吊子的改革最糟糕!
杂谈语言(之四)——续谈广东话的口头语(2)
杂谈语言(之四)——续谈广东话的口头语(1)
杂谈语言(之三)——那些深受古汉语影响的语言(方言)
杂谈语言(之二)——语言学习的边际成本递减效应
《VB程序设计基础》选择题
设计模式之Iterator

您可能对这些感兴趣  

第7讲 综合分析BIM在运用与推广中的障碍问题
考核学生质量的困难
日本福岛核电站事故初步分析
论科技异化与科技人化
中国科技计划项目管理现状与对策
财政科技资金的审计重点和内容
软科学研究机构在政府决策中的功效、困境及对策研究
打造超级DOS系统(下)
DOS命令基础应用(6)
打造超级DOS系统(上)

题目筛选器
日期:
类型:
状态:
得分: <=
分类:
作者:
职业:
关键字:
搜索

 
 
 
  焦点事件
 
  知识体系
 
  职业列表
 
 
  最热文章
 
 
  最多引用文章
 
 
  最新文章
 
 
 
 
网站介绍 | 广告服务 | 招聘信息 | 保护隐私权 | 免责条款 | 法律顾问 | 意见反馈
版权所有 不得转载
沪ICP备 10203777 号 联系电话:021-54428255
  帮助提示    
《我的太学》是一种全新的应用,您在操作中遇到疑问或者问题,请拨打电话13564659895,15921448526。
《我的太学》