Delphi - TPaintBox - 调整大小
题
我有问题大小调整TPaintbox并绘制它:
在我的表单上(命名为fmain)我删除了一个tpaintbox(命名的displayImage),我试图随着表单调整大小的调整大小。 要做到我为fmain写了一个onresize()方法(我确认它被正确调用),我试图调整显示中的大小:procedure TFMain.FormResize(Sender: TObject);
begin
DisplayImage.Width := FMain.ClientWidth;
DisplayImage.Height := FMain.ClientHeight;
DisplayImage.Canvas.Brush.Color := clGreen;
DisplayImage.Canvas.Brush.Style := bsSolid;
DisplayImage.Canvas.Rectangle(0, 0, DisplayImage.Width, DisplayImage.Height);
end;
.
imho最后一个代码应该在完整的图像上绘制全图像绿色矩形,从而有效地使其成为绿色。相反,我获得灰色图像(就像Delphi的标准BG颜色),并且每次偶尔都在调整瞬间的大小期间,绿色图像闪烁。
我缺少的是什么,在调整大小后我需要更新一些隐藏组件吗?
提前谢谢,
暴雪
解决方案
首先,而不是做
DisplayImage.Width := FMain.ClientWidth;
DisplayImage.Height := FMain.ClientHeight;
.
在每个调整大小,只需设置油漆盒的生成频率仪。
其次,要绘制到油漆盒,请使用油漆盒的Align := alClient
事件:
procedure TFMain.DisplayImagePaint(Sender: TObject);
begin
DisplayImage.Canvas.Brush.Color := clGreen;
DisplayImage.Canvas.Brush.Style := bsSolid;
DisplayImage.Canvas.Rectangle(0, 0, DisplayImage.Width, DisplayImage.Height)
end;
. 不隶属于 StackOverflow