如何在 VCL 中清除位图

How to Clear a Bitmap in VCL

如何清除在 .cpp 中声明的位图,如下所示:

Graphics::TBitmap * Bitmap1 = new Graphics::TBitmap;

我找到的所有示例都是针对 Firemonkey 的,看起来很简单

MyBitmap = new TBitmap(0,0);
...


MyBitmap->Clear(claWhite);

MyBitmap->ClearRect(MyRect);

但是Clear()和ClearRect()在VCL中不是TBitmap的成员

我希望我应该 delete Bitmap1; 以清除它,但是如何重新声明它,以便它对表单中的所有方法仍然是全局的?

提前致谢。

您不需要删除并重新创建 TBitmap。简单地在它上面绘制一个新图像,例如使用它的 Canvas->FillRect() 方法(这基本上就是 FMX 示例正在做的事情),例如:

Bitmap1->Brush->Color = clWhite;
Bitmap1->Canvas->FillRect(Rect(0, 0, Bitmap1->Width, Bitmap1->Height));