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

如题所述

在 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;

代码运行截图:

温馨提示:答案为网友推荐,仅供参考