gpt4 book ai didi

delphi - delphi中的图像缓冲区实现

转载 作者:行者123 更新时间:2023-12-03 19:01:35 25 4
gpt4 key购买 nike

上下文

我正在 Canvas ,它会定期更新并且会闪烁。
逻辑上认为我认为这是因为我的重绘方法清除了 Canvas ,然后一次将一个元素绘制到 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;

运行代码后,我得到一个错误显示如下。
alt text

问题
由于 Canvas 是只读属性,如何将一个 Canvas 设置为另一个 Canvas ?还是有更好的方法来做我想做的事情?

最佳答案

  • 看起来你没有创建 myrealpicture
  • 我会使用方法AssignMyRealPicture.Picture.Assign(BufferPicture.Picture);
  • 您可以使用 BitBlt 将一个 Canvas 的内容复制到另一个 Canvas 上。 :
    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;
  • 您可以使用 DoubleBuffered房产
  • 关于delphi - delphi中的图像缓冲区实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3092399/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com