image 控件与 paintbox 控件的区别是什么?各自的优点又是什么呢? 如果选择选择其中一个控件来画图,请问那一个好一些呢?

解决方案 »

  1.   

    我想用PaintBox会更好些,其功能会多一些[转贴]:
    其一、对于用户动态的输入应该提供橡皮筋式的操作,当然 Image 也可,
    该类型的操作应该以异或方式完成,并不激活OnPaint,而与OnPaint事件自身无关。
    所以不会有速度慢的问题。
    其二、对于用户的操作,应该以某种数据结构记录下来,而不要让控件自身代办。
    正式因为要开发类似与画笔的动态功能,其 Undo 功能必不可少,而这一点正式
    Image所不能达到的。
    其三、对于缩放功能,记录用户操作(用 PaintBox) 就更为必要了,如果使用
    Image 会在放大之后的线条上出现锯齿。
    其四、文件保存。通常情况下,以流方式保存的操作数据文件,应比位图文件包含
    更多可操作的信息和更少的存储空间。其实质是向量图形和点阵图形的差别。
    比如,对向量图形,用户可以选中图形对象,设置层次等。
    其五、写在 PaintBox 的 OnPaint 事件中的代码稍作改动,可以很方便地用于
    打印预览和打印:加上比例因子,可用于打印预览。把对 PaintBox.Canvas 的操作
    换成对 Printer.Canvas 的操作即完成了打印。
      

  2.   

    image 控件一般用来控制图片显示个人感觉PaintBox功能比较全
      

  3.   

    我选TCustomControl or TGraphicControl 
    看需要了。。TCustomControl 可以作成容器,功能也可以做的很丰富,如果只需要一个单纯的
    绘制场景,TGraphicControl 简单些。TImage 是更高级的封装,自动管理刷新,但是这也就是主要的问题之一,由于不能控制它的自动刷新,造成闪烁。TPaintBox 里自己管理绘制和刷新。可以避免闪烁。但是因为TPaintBox 来自TGraphControl,不能成为容器。功能受限制。如果你只想做些简单的 绘制和显示的话,TPaintBox 拿来就用。简单上手!
      

  4.   

    weizi2000(秋风啊) 答得很全面,我同意