Art*_*hur 1 delphi buffer drawing canvas image
上下文
我正在绘制画布,它会定期更新并闪烁.逻辑思考我认为这是因为我的重绘方法清除了Canvas,然后一次将一个元素绘制到画布上.所以我的想法是写一个Timage,然后将图片设置为Timage.
信息
这是我的代码
procedure Tmainwindow.Button3Click(Sender: TObject);
var bufferpicture:TImage;
begin
//draw stuff to bufferpicture
//***
//draw stuff to bufferpicture
myrealpicture.picture:=bufferpicture.picture;
end;
Run Code Online (Sandbox Code Playgroud)
运行代码后,我得到一个错误显示如下.
问题 如何将画布设置为另一个画布,因为画布是只读属性?或者有更好的方法来做我想做的事情?
小智 5
myrealpicture
我会用这个方法 Assign
MyRealPicture.Picture.Assign(BufferPicture.Picture);
您可以使用以下方法将一个画布的内容复制到另一个BitBlt
:
var
BackBuffer: TBitmap;
begin
BackBuffer := TBitmap.Create;
try
{ drawing stuff goes here}
BitBlt(Form1.Canvas.Handle, 0, 0, BackBuffer.Width, BackBuffer.Height,
BackBuffer.Canvas.Handle, 0, 0, SRCCOPY);
finally
BackBuffer.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)您可以使用该DoubleBuffered
物业