ThE*_*arD 1 delphi resize onresize paintbox
我在调整TPaintBox的大小并绘制它时遇到问题:
在我的表单(名为FMain)上,我删除了一个TPaintBox(名为DisplayImage),我试图在调整Form大小时调整大小.
为此,我为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;
Run Code Online (Sandbox Code Playgroud)
恕我直言,最后一个代码应该在整个图像上绘制一个全图像绿色矩形,使其有效地始终为绿色.相反,我得到一个灰色图像(就像Delphi的标准bg颜色),每隔一段时间调整一次,绿色图像闪烁.
我缺少什么,是否有一些我需要在调整大小后更新的隐藏组件?
先感谢您,
暴风雪
首先,而不是做
DisplayImage.Width := FMain.ClientWidth;
DisplayImage.Height := FMain.ClientHeight;
Run Code Online (Sandbox Code Playgroud)
在每个调整大小时,只需设置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;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3021 次 |
| 最近记录: |