T
tangyan
Unregistered / Unconfirmed
GUEST, unregistred user!
我先在窗体上输出了一些文字,用鼠标点击是画线,当再次点击时异或掉前面的线
在划一新线,结果是我异或掉了前次的线,但我发觉文字上的部分点也别异或掉了
为什么?我错在那?鼠标点击事件的源码如下:
XX,YY是前次点击坐标,为公共变量。
procedure TFrm_PlanAndControl.FormPaint(Sender: TObject);
begin
self.Canvas.Pen.Mode := pmCopy ;
self.Canvas.Pen.Color := clred;
self.Canvas.TextOut(200,200,'sadfasdfasdf');
end
procedure TFrm_PlanAndControl.FormMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if (XX <> 0) and (YY<>0) then
begin
self.Canvas.Pen.Mode := pmXor;
self.Canvas.Pen.Color := clScrollBar;
self.Canvas.MoveTo(xx,10);
self.Canvas.LineTo(xx,700);
end;
self.Canvas.Pen.Mode := pmCopy ;
self.Canvas.Pen.Color := clScrollBar;
self.Canvas.MoveTo(x,10);
self.Canvas.LineTo(x,700);
XX := x;
YY := y;
end;
在划一新线,结果是我异或掉了前次的线,但我发觉文字上的部分点也别异或掉了
为什么?我错在那?鼠标点击事件的源码如下:
XX,YY是前次点击坐标,为公共变量。
procedure TFrm_PlanAndControl.FormPaint(Sender: TObject);
begin
self.Canvas.Pen.Mode := pmCopy ;
self.Canvas.Pen.Color := clred;
self.Canvas.TextOut(200,200,'sadfasdfasdf');
end
procedure TFrm_PlanAndControl.FormMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if (XX <> 0) and (YY<>0) then
begin
self.Canvas.Pen.Mode := pmXor;
self.Canvas.Pen.Color := clScrollBar;
self.Canvas.MoveTo(xx,10);
self.Canvas.LineTo(xx,700);
end;
self.Canvas.Pen.Mode := pmCopy ;
self.Canvas.Pen.Color := clScrollBar;
self.Canvas.MoveTo(x,10);
self.Canvas.LineTo(x,700);
XX := x;
YY := y;
end;