GridPanel中没有在第一缩放调整
-
21-08-2019 - |
题
我有一个问题我无法解决即使我花了很长时间试图做到这一点。
我通常使用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的调整大小。 我没有测试它。我希望它的工作。
不隶属于 StackOverflow