删除或删除在TImage画布上绘制的线条

 手机用户2502894791 发布于 2023-01-10 01:45

这是我在stackoverflow中的第一个问题,我在发布之前到处搜索了所有内容,所以你们是我的最后一次机会

我正在使用Canvas和MoveTo(X,Y)方法在Delphi xe5中制作一个小程序,包括在足球场(TImage)上绘制线条,一切都很棒

节目图片

但我的问题是,我想在绘制下一条线之前擦除更多线条,所以我不能同时拥有两条线,我该怎么做?

这是我用于绘制线条的代码片段:

 procedure TForm2.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);

 const
Line: Integer = 0;
 begin

if Line = 0 then begin
   Canvas.MoveTo(X,Y);
   Line := 1;
   Label1.Caption := IntToStr(x) ;
   label2.Caption :=  IntToStr(y);
End
else if Line = 1 then begin
   Canvas.LineTo(X,Y);
   Line := 0;
   Label3.Caption := IntToStr(x) ;
   label4.Caption :=  IntToStr(y);

end;
end;

roumen.. 5

如果没有填充颜色的区域,则可以使用Pen.Mode设置进行所有绘制pmXOR.它将给出一些奇数点,其中线条交叉(例如红线与蓝色圆圈交叉),但是当你重新绘制红线时 - 它会消失.

只需添加:

Canvas.Pen.Mode := pmXOR;

如有必要 - 记住现有的Pen.Mode并在完成绘图时恢复它.

1 个回答
  • 如果没有填充颜色的区域,则可以使用Pen.Mode设置进行所有绘制pmXOR.它将给出一些奇数点,其中线条交叉(例如红线与蓝色圆圈交叉),但是当你重新绘制红线时 - 它会消失.

    只需添加:

    Canvas.Pen.Mode := pmXOR;
    

    如有必要 - 记住现有的Pen.Mode并在完成绘图时恢复它.

    2023-01-10 02:20 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有