S sw7309 Unregistered / Unconfirmed GUEST, unregistred user! 2003-05-25 #1 在onmousemove中,如何对tcanvas进行操作,使得鼠标的移动轨迹在image上是连续的,就 象画笔画图程序中的钢笔工具一样, 我现在用pixel[x,y]=color的方法画的点是间断的
G gsh2000 Unregistered / Unconfirmed GUEST, unregistred user! 2003-05-25 #2 pixel只对单个象素作用,画出的点当然是间断的 拖动鼠标画线?如果我没理解错你的意思的话,试试如下方法: 利用image的canvas属性,设置相应的画笔风格,颜色,模式等等 begin image1.Canvas.Pen.Color:=clred; image1.Canvas.Pen.Style:=psdot; image1.Canvas.Pen.Mode:=pmxor; …… image1.Canvas.MoveTo(10,10); Image1.Canvas.LineTo(x,y); end;
pixel只对单个象素作用,画出的点当然是间断的 拖动鼠标画线?如果我没理解错你的意思的话,试试如下方法: 利用image的canvas属性,设置相应的画笔风格,颜色,模式等等 begin image1.Canvas.Pen.Color:=clred; image1.Canvas.Pen.Style:=psdot; image1.Canvas.Pen.Mode:=pmxor; …… image1.Canvas.MoveTo(10,10); Image1.Canvas.LineTo(x,y); end;
S sw7309 Unregistered / Unconfirmed GUEST, unregistred user! 2003-05-26 #4 二位可能没有明白我的意思,我的意思是想将鼠标的移动轨迹在tcanvas上画出来,而且必须 是连续的,效果可以见windows的画图程序是的铅笔工具, 我现在的代码 PROCEDURE TfrmMain.imgXyMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); BEGIN imgXy.Canvas.Pen.Mode := pmCopy; imgXy.Canvas.Pen.Style := psSolid; imgXy.Canvas.Pixels[X, Y] := clRed; // SetPixel(imgXy.Canvas.Handle, X, Y, ForColor); // InValidate(); END; END; 画出的轨迹是一系列间断的点,用setpixel也同样,但画图程序的铅笔工具画出的轨迹就是 连续的线
二位可能没有明白我的意思,我的意思是想将鼠标的移动轨迹在tcanvas上画出来,而且必须 是连续的,效果可以见windows的画图程序是的铅笔工具, 我现在的代码 PROCEDURE TfrmMain.imgXyMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); BEGIN imgXy.Canvas.Pen.Mode := pmCopy; imgXy.Canvas.Pen.Style := psSolid; imgXy.Canvas.Pixels[X, Y] := clRed; // SetPixel(imgXy.Canvas.Handle, X, Y, ForColor); // InValidate(); END; END; 画出的轨迹是一系列间断的点,用setpixel也同样,但画图程序的铅笔工具画出的轨迹就是 连续的线
小 小八哥 Unregistered / Unconfirmed GUEST, unregistred user! 2003-05-26 #5 Canvas.Pen.Mode := pmCopy; Canvas.Pen.Style := psSolid; Canvas.Pen.Color:=clred; Canvas.LineTo(x,y);
X xyf2001721 Unregistered / Unconfirmed GUEST, unregistred user! 2003-05-26 #7 onmousedown: Canvas.MoveTo(x,y); onmousemove: Canvas.LineTo(x,y);