我在一个Image上加载了一张图,然后又在这个图上画了一个直线,我如何将我画的直线取消掉呢?(可以重新加载这个图,但是那样会很慢的!)。

解决方案 »

  1.   

    要想真接恢复好像不大可能,因为在 Canvas 上操作的时候以经改变了这张图(内存中的),所以要恢复你可以先读到一个Picture 上,恢复时从重新为 Image 的 Picture 赋次值:var
      Pic: TPicture;procedure Load;
    begin
      Pic.LoadFromFile('...');
      Image.Picture := Pic;
    end;procedure ReLoad;
    begin
      Image.Picture := Pic;
    end;
      Image.Picture := Pic;
    end;
    end;
      

  2.   

    你画直线的操作可以用异或,那么再次用异或画直线就会还原原来的图形了。
    Pen.Mode := pmXor;
      

  3.   

    同意楼上人: windindance(风舞轻扬·白首为功名)