我已将我TImage.Canvas
在 Delphi 2009 中使用的问题缩小到以下可重现的情况:
给定:一个表格,一个TImage
,TLabel
和TButton
它。被TImage
锚定到所有四个边缘,因此调整表单大小将调整TImage
. 我想要做的是Image1
在调整大小后利用我可用的最大区域。所以在我的测试用例中,我的按钮OnClick
处理程序中有以下代码:
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption:= IntToStr (Image1.Width)+' x '+IntToStr(Image1.Height);
Image1.Canvas.Pen.Color:= 0;
Image1.Canvas.Rectangle(0,0,Image1.Width, Image1.Height);
end;
您会看到,如果调整了表单的大小Image1.Width
并按.Height
预期进行了更改,但是如果调整后的表单大于原始表单,则绘制的矩形将是不完整的,仅在之前存在的相同区域上绘制。
我如何让它使用整个调整大小的区域?
对于它的价值,在我玩过的原始问题中Image1.Stretch
,这允许我在调整大小时使用更多区域,但会导致我的绘图被扭曲(不需要)。如果我也使用Image1.Proportional
,那就更好了,但我仍然无法使用可用的全部区域。Image1.AutoSize
似乎也没有对我做任何有用的事情。
任何帮助表示赞赏。