GridPanel在第一次调整大小时不会调整

Mar*_*mke 6 delphi controls resize alignment tgridpanel

我有一个问题我无法解决,即使我花了很长时间尝试这样做.

我通常使用GridPanel来对齐表单上的控件.然而,它有一个恼人的错误.当GridPanel对齐模式是alClient并且我最大化其父窗口时,GridPanel会调整到该窗口的新大小,但是,放置在网格上的控件不会.他们保持与窗口调整大小之前相同的位置.它仅在第一个窗口的最大化时发生.如果首先手动调整窗口大小,则每次都可以.我认为网格在第二次调整大小事件后调整其子控件(??).

如果遇到这个bug,GridPanel可以正常工作吗?它可能足以向它发送消息(但是什么消息?),我不知道.我尝试使用Realign,Refresh等,但他们没有帮助.

在此先感谢您的帮助,

马里乌什.

onn*_*odb 9

啊,我也遇到过类似的问题.它可能与VCL中的大小调整问题有关.您可能想尝试Andreas Hausladen的修复.在大多数情况下,它似乎对我有用.


man*_*lio 5

更改宽度/使控件无效对我来说不起作用(RAD Studio 的最新版本发生了一些变化?)。

无论如何,沿着这条线的类似、简单的解决方法是:

procedure TForm1.FormResize(Sender: TObject);
begin
  GridPanel1.ControlCollection.BeginUpdate;
  GridPanel1.ControlCollection.EndUpdate;
end; 
Run Code Online (Sandbox Code Playgroud)