首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

怎么擦除lineto出来的线

2012-02-17 
如何擦除lineto出来的线Delphi(Pascal) codeunit Unit1interfaceusesWindows, Messages, SysUtils, Varia

如何擦除lineto出来的线

Delphi(Pascal) code
unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs;type  TForm1 = class(TForm)    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,      Y: Integer);    procedure FormCreate(Sender: TObject);  private    { Private declarations }  public    { Public declarations }  end;var  Form1: TForm1;  i,j:Integer;  b:Boolean;implementation{$R *.dfm}procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,  Y: Integer);begin  if b then  begin  Form1.Canvas.MoveTo(0,0);  Form1.Canvas.lineto(i,j);//此位置是想将上一次的线取消掉  Form1.Canvas.MoveTo(0,0);  Form1.Canvas.Lineto(x,y);//画新线条  i := x;//记录坐标一边下次擦除  j := j;  b:=True;  end  else  begin    Form1.Canvas.MoveTo(0,0);//初始化画一条线    Form1.Canvas.LineTo(x,y);    i:=x;    j:=y;  end;end;procedure TForm1.FormCreate(Sender: TObject);beginb:=False;end;end.




上面的程序的用以是当鼠标移动的时候将上一次坐标的线条取消掉画现在坐标的线条
我知道上面的程序不能实现其用意

假如说有背景 在不破坏背景的情况下 擦除线条
比如说背景是一张照片 当擦除线条之后照片不损坏
有什么办法么?

[解决办法]
擦拭原来线的时候,设置Canvas.Pen.Mode,有多种样式
TPenMode = (pmBlack, pmWhite, pmNop, pmNot, pmCopy, pmNotCopy,
pmMergePenNot, pmMaskPenNot, pmMergeNotPen, pmMaskNotPen, pmMerge,
pmNotMerge, pmMask, pmNotMask, pmXor, pmNotXor);
自己根据实际情况试试吧

热点排行