gpt4 book ai didi

delphi - 如何获取带有组合框的面板图像

转载 作者:行者123 更新时间:2023-12-03 14:57:53 26 4
gpt4 key购买 nike

我需要捕获面板的图像。

我遇到的问题是,如果面板包含 TCombobox,则文本不会出现。

procedure AssignPanelImageToPicture(Panel : TPanel;Image : TImage);
var
B : TBitmap;
begin
B := TBitmap.Create;
try
B.Width := Panel.Width;
B.Height := Panel.Height;
B.Canvas.Lock;
Panel.PaintTo(B.Canvas.Handle,0,0);
B.Canvas.Unlock;
Image1.Picture.Assign(B);
finally
B.Free;
end;
end;

使用此代码,我放置了一个带有 TCombobox 的面板。然后在文本属性中输入一个值。我还放了一个 TImage Next 两个它。然后我添加一个按钮来调用上面的代码。

结果如下:

Imaging of Panel Painting Problem

有没有更好的方法来捕获面板的真实图像。

最佳答案

使用 GetDC 怎么样?和BitBlt功能?

procedure AssignPanelImageToPicture(Panel : TPanel;Image : TImage);
var
B : TBitmap;
SrcDC: HDC;
begin
B := TBitmap.Create;
try
B.Width := Panel.Width;
B.Height := Panel.Height;
SrcDC := GetDC(Panel.Handle);
try
BitBlt(B.Canvas.Handle, 0, 0, Panel.ClientWidth, Panel.ClientHeight, SrcDC, 0, 0, SRCCOPY);
finally
ReleaseDC(Panel.Handle, SrcDC);
end;
Image.Picture.Assign(B);
finally
B.Free;
end;
end;

关于delphi - 如何获取带有组合框的面板图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8828360/

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