我有一个问题我无法解决即使我花了很长时间试图做到这一点。

我通常使用GridPanels对齐表单上的控件。它有,然而,一个恼人的bug。当GridPanel中对齐模式是alClient我最大化它的父窗口,在GridPanel中调整到该窗口的新的大小,但是,铺设电网的控制不会。他们留在他们的窗口大小调整前相同的位置。 它仅在第一窗口的最大化发生。如果先手动调整窗口大小,everyting是OK。我认为网格中的第二调整大小事件(??)。

之后调整其子控件

怎么做让GridPanel中正常工作,如果涉及到这个bug?这可能足以将消息发送到它(但什么消息?),我不知道。我试图用重新调整,刷新等,但他们并没有帮助。

感谢您的帮助提前,

马里乌什。

有帮助吗?

解决方案

啊,我也有类似的问题,以及。这可能与在VCL改变大小的问题。你可能会想尝试由Andreas Hausladen 修复。这似乎对我来说在大多数情况下工作。

其他提示

我发现一招。

在的GridPanel的父的OnResize事件,变化的GridPanel的宽度由1个像素。

然后GridPanel中会注意到尺寸改变,则重新排列的GridPanel ..

子控制

样本低于..

procedure TForm1.FormResize(Sender: TObject);
begin
  GridPanel1.Width := GridPanel1.Width - 1;  // subtract 1
  GridPanel1.Width := GridPanel1.Width + 1;  // recover width by adding 1
end; 

更改宽度/无效的控制,我(的东西与最新版本的RAD Studio的改变?)不工作

反正沿该线类似,简单的解决方法是:

procedure TForm1.FormResize(Sender: TObject);
begin
  GridPanel1.ControlCollection.BeginUpdate;
  GridPanel1.ControlCollection.EndUpdate;
end; 

我有这个错误太上几个项目。我不知道我是如何解决这个(这是对项目我以前的雇主,我没有访问这个源代码了)。我认为已经TE重绘/刷新其上的GridPanel置于该父框架或形式。

上的所有者呼叫GridPanel.Invalidate的调整大小。 我没有测试它。我希望它的工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top