[英]Delphi - TPaintBox - Resize
我在调整TPaintBox的大小并在其上绘图时遇到问题:
在我的窗体(名为FMain)上,我放下了一个TPaintBox(名为DisplayImage),我试图在调整窗体大小时对其进行调整。
为此,我为FMain编写了一个OnResize()方法(我确认它已正确调用),在其中尝试调整DisplayImage的大小:
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;
恕我直言,最后一个代码应该在整个图像上绘制一个全图绿色矩形,使其实际上始终为绿色。 取而代之的是,我得到一个灰色图像(就像Delphi的标准bg-color一样),并且在调整大小的过程中不时地偶尔出现绿色图像闪烁。
我缺少什么,调整大小后是否需要更新一些隐藏的组件?
先感谢您,
暴风雪
首先,不要做
DisplayImage.Width := FMain.ClientWidth;
DisplayImage.Height := FMain.ClientHeight;
在每次调整大小时,只需设置绘画框的Align := alClient
即可。
其次,要绘制到绘画框,请使用绘画框的OnPaint
事件:
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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.