如何在 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));
如何清除在 .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));