我在一个窗体的上面画线,Form1.Canvas.Pen.Color:=clRed;
        Form1.Canvas.Pen.Width:=3;
        Form1.Canvas.MoveTo(120,130);
        image1.Canvas.LineTo(120,220);
窗体上还有一个image空间,内装一个24*24大小的icon图片,我无意中发现,如果在程序中控制image移动后,image 如果从画的线上面经过,
画的线就不见了。我想保留画的线而不被image擦掉,该怎么办????????

解决方案 »

  1.   

    把你的代码放到form的onpaint事件里,
      

  2.   

    可是我要画很多线,而且不是一次画完,而是每移动一次image控件就画一次,该怎么解决呢?
      

  3.   

    你把所有画线工作都画到一个TBitmap对象里,然后在form的onpaint事件里copy
      

  4.   

    把窗口上的放到另一个image或paintbox上。
      

  5.   

    对,我也在做GDI画图的程序.直接把动作放在image.canvas里就可解决你的问题
      

  6.   

    首先你的定义数据结构,保存你画过的数据,把你画线的方法写在Form的OnPaint事件中,这样当你移动图片时,线就不会消失。
    数据结构:
    TLine=class
    private
      PFrom,
      PTo: TPoint;
    end;
    LineList: TList;//保存TLine对象。
    将你画的线的数据保存到TList中,在Form的OnPaint方法中遍历TList中的对象中的数据,画线,就能得到你要的效果。