是否可以清除TPaintBox而不用矩形覆盖

时间:2018-03-24 20:08:17

标签: delphi canvas

我想要清除TPaintBox。但我仍然需要透明度,因此不可能绘制矩形。我该如何清除它?

1 个答案:

答案 0 :(得分:1)

请注意,TPaintBox没有透明的概念。为了给人一种透明感,你可以防止在你要透过的区域进行绘画(显示TPaintBox背后的内容)。

在下面的示例中,我有TImage的风景图片。最重要的是,有一个TPaintBox画出红线的十字。使用Button1我切换boolean标记(TimeToClear)并致电PaintBox1.Invalidate;

OnPaint方法:

procedure TForm26.PaintBox1Paint(Sender: TObject);
begin
// Simply exit to prevent any painting;
  if TimeToClear then Exit;

// Otherwise perform normal drawing
  with (Sender as TPaintBox).Canvas do
  begin
    Pen.Style := psSolid;
    Pen.Color := Vcl.Graphics.clRed;
    Pen.Width := 5;
    MoveTo(  0,  0);
    LineTo(105,105);
    MoveTo(105,  0);
    LineTo(  0,105);
  end;
end;

enter image description here enter image description here