如何擦除IMAGE上面绘制的图案? 如何擦除IMAGE上面绘制的图案?就像系统画图程序哪样的橡皮擦一样如不能实现哪样,擦除刚绘制上面的图形,如直线,也可以! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 画线的时候,以xor方式再画一次就是恢复了 擦出,还是容易的吧!像楼上的的xor方式划线,就可以另外,简单点,Canvas.Brush.Color := clwhite;canvas.fillrect(clientrect);不也可以? 在原来的位置,用pmNot模式重新画一下,就可以擦除上一次的图像procedure TForm1.Button1Click(Sender: TObject);beginImage1.Canvas.LineTo(100,100);end;procedure TForm1.Button2Click(Sender: TObject);begin Image1.Canvas.Pen.Mode := pmNot; Image1.Canvas.MoveTo(0,0); Image1.Canvas.LineTo(100,100);end; 推荐一个代码:DrawTool画几何图行源码C#虽然是C#的代码,但可以参考一下思路。将每个图像也理解成控件,擦除的时候就是拿掉控件。绘制的时候就是按添加的先后摆放。 这是我的画图代码,我就是希望如果画错了,能完全地在BMP上擦除,重画、procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin Tag:=1; //置位image1.Canvas.MoveTo(X,Y); //将Pen的位置移到当前image1.Canvas.Pen.Width := 6;image1.Canvas.Pen.Color :=clred;end;procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);begin if Tag=1 thenbegin Image1.Canvas.LineTo(x,y);end;end; procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin Tag:=0; //标志位end; 我在BMP上,是随便画的,担心画不好的时候,想重新画我现在画不好,只有关闭程序,所以想请教一下大家,能不能擦除。 xor模式就是实现橡皮筋的基本办法 xor怎么用,能不能举个例子看看。 xor也是一种模式而已,下面的pmNot也是一样,TPen和TBrush都有这类属性在原来的位置,用pmNot模式重新画一下,就可以擦除上一次的图像procedure TForm1.Button1Click(Sender: TObject);beginImage1.Canvas.LineTo(100,100);end;procedure TForm1.Button2Click(Sender: TObject);begin Image1.Canvas.Pen.Mode := pmNot; Image1.Canvas.MoveTo(0,0); Image1.Canvas.LineTo(100,100);end; 那就画之前把bmp在内存里保存一份,要恢复直接取回覆盖到bmp 我要的效果,就是在IMAGE1载入一个BMP图片,然后在上面绘制,然后能擦除绘制的其中一部分,即不全擦掉擦掉的时候,背景不能被破坏 调用dll函数被跳出 高手请进 关于Avphone的问题??捕捉视频很慢。 超难问题!ADO+Excel 如果实现分组报表的组合计问题? 用一条sql语句怎样才能找出不重复记录的所有数据? ado+sqlserver进行数据库开发要注意哪些资源的释放 如何得到ADO存储过程的返回值? 关于WebSnap的小问题! 如何实现按装程序时自动创建odbc Delphi 控件 移动 北京Delphi程序员还有吗?
另外,简单点,Canvas.Brush.Color := clwhite;
canvas.fillrect(clientrect);不也可以?
在原来的位置,用pmNot模式重新画一下,就可以擦除上一次的图像
procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Canvas.LineTo(100,100);
end;procedure TForm1.Button2Click(Sender: TObject);
begin
Image1.Canvas.Pen.Mode := pmNot;
Image1.Canvas.MoveTo(0,0);
Image1.Canvas.LineTo(100,100);
end;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Tag:=1; //置位
image1.Canvas.MoveTo(X,Y); //将Pen的位置移到当前
image1.Canvas.Pen.Width := 6;
image1.Canvas.Pen.Color :=clred;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if Tag=1 then
begin
Image1.Canvas.LineTo(x,y);
end;
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Tag:=0; //标志位
end;
xor也是一种模式而已,下面的pmNot也是一样,TPen和TBrush都有这类属性
在原来的位置,用pmNot模式重新画一下,就可以擦除上一次的图像
procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Canvas.LineTo(100,100);
end;procedure TForm1.Button2Click(Sender: TObject);
begin
Image1.Canvas.Pen.Mode := pmNot;
Image1.Canvas.MoveTo(0,0);
Image1.Canvas.LineTo(100,100);
end;
擦掉的时候,背景不能被破坏