我正在使用Delphi 10.1 Berlin,我需要创建一个图像并将其Canvas大小设置为等于位图大小。更具体地说,我想访问此属性:
在哪里说:“按图像大小”。但我无法弄清楚如何获取此信息,请帮忙! :-D
编辑:这是我正在使用的代码,如果你们需要更好地理解我想要实现的目标:
imgProdutoZoom := TImage.Create(rtFundoArredondadoZoom);
imgProdutoZoom.Parent := rtFundoArredondadoZoom;
imgProdutoZoom.Align := TAlignLayout.Client;
imgProdutoZoom.Bitmap.Assign(imgProduto.Bitmap);
imgProdutoZoom.WrapMode := TImageWrapMode.Fit;
imgProdutoZoom.Name := 'imgZoom'+ IntToStr(i);
我找到了这段代码:imgProdutoZoom.MultiResBitmap.SizeKind.Source;
但控制台给我一个错误:'[dcc32 Error] MainFrm.pas(628):E2018需要记录,对象或类类型'
答案 0 :(得分:3)
您没有显示Expected type 'int', got 'float'
是什么,但我认为它是rtFundoArredondadoZoom
。
设置
时TRectangle
您告诉填写父母区域(imgProdutoZoom.Parent := rtFundoArredondadoZoom;
imgProdutoZoom.Align := TAlignLayout.Client;
)。但是,由于rtFundoArredondadoZoom
默认为TImage.WrapMode
,因此图片会保留其宽高比,并且不会拉伸以填充父级。
现在,您设置的限制因素是TImageWrapMode.Fit
矩形,特别是它的高度。要以完整尺寸显示图像,您需要设置
rtFundoArredondadoZoom
您有时也可能想要设置矩形的宽度。
下图显示了左侧原始尺寸的图像,以及基本上使用代码的高度较小的矩形上的相同图像
然后在矩形上应用高度设置
相应地更正了您的代码:
rtFundoArredondadoZoom.Height := imgProdutoZoom.Bitmap.Height;