delphi怎样清除canvas中已经绘制的作图

 我来答
windblast
2017-07-05 · 知道合伙人软件行家
windblast
知道合伙人软件行家
采纳数:5633 获赞数:13620
毕业于空军第一航空学院电子专业,1991年开始接触电脑,从事多年计算机编程,具有较丰富的经验。

向TA提问 私信TA
展开全部

在 delphi 中,清除canvas中已经绘制的作图,可以采用以下方法:

一、使用 canvas 所在控件提供的 repaint 方法

在 delphi 中,Form 等控件提供了 Repaint 方法,用于进行控件的重绘,如果在这些控件的 canvas 上绘图,则可以直接调用此方法,最为简便。

注意,此方法对于 TImage 等控件无效。

二、用 FillRect 函数进行覆盖式填充

在电脑屏幕中,清除 canvas 中已经绘制的作图,实际上就相当于用背景色(通常是白色)的画笔,在原图位置上重新绘制(覆盖式填充)。

提供实例代码供参考:

procedure TForm1.Button1Click(Sender: TObject);
var
  posx,posy: integer;
begin
  with Image1 do
  begin
    posx := Clientwidth div 2;
    posy := Clientheight div 2;
    Canvas.Pen.Color := clRed;
    Canvas.Pen.Width := 4;
    Canvas.Ellipse(posx-50,posy-50,posx+50,posy+50);
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  with Image1.Canvas do
  begin
    Pen.Style := psSolid;
    Pen.Color := clWhite;
    FillRect(ClientRect);
  end;
end;

代码运行截图:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式