type
form1..
private
OldP,NewP:TPoint;
Down:Boolean;
....
procedure Form1.OnCreate(sender:TOBject);
begin
down:=false;
end;
...
procedure Form1.OnMouseDown(...);
begin
Down:=true;
OldP:=POint(X,Y);
NewP:=OldP;
end;
PROCEDURE Form1.OnMouseMove();
begin
NewP:=Point(x,y);
if (NewP.x=OldP.x)and(NewP.y=OldP.y) then exit;
if Not Down then exit;
with Form1.Canvas do begin
Pen.Mode:=pm_Not;//设置画笔模式为反,具体取值看帮助;忘记了:)
MoveTo(OldP);
LineTo(NewP);// 插曲旧线
Pen.Mode:=pm_not;
MoveTo(OldP);
LineTo(NewP);//新线
end;
end;
procedure Form1.OnMouseUp();
begin
Down:=false;
NewP:=Point(X,Y);
with form1.canvas do begin
pen.color:=Your Line Color;
MoveTo(OldP);
LIneTo(NewP);
end;
end;