控件的大小不会随autosize设置为true而更新

时间:2016-11-08 03:55:22

标签: lazarus freepascal autosize

我有一个fsStayOnTop样式表单,我在我正在开发的工具中用作繁忙的屏幕。我在表单上有一个TLabel控件,显示该应用程序正在做什么(或者,为什么它正忙)。

在我开始可能需要很长时间的事情之前,我更新了TLabel控件的标题,并尝试调整表单的大小,以便很好地适应中间的文本。 TLabel控件的autosize属性设置为true。

代码是这样的。

procedure TfrmBusy.SetText(txt: String);
begin
  m_lblText.caption:= txt;
  self.width = m_lblText.left + m_lblText.width + 64;
  self.height = m_lblText.top + m_lblText.height + 64;
end;

然后我使用frmBusy.Show显示表单。

但是表单不会以预期的大小呈现。

似乎有一个延迟的大小自动更新,因此,如果我将文本设置为与之前相同的东西,那么下次我显示繁忙的表单时会反映大小(这不是导致标签改变其大小)。

无论如何都要做到这一点,以便我可以在计算表格的宽度/高度时使用正确的标签宽度/高度?如果没有,我的选择是什么?

编辑:这是在Windows上和Lazarus 1.6 / FPC 3.0.0。

干杯

0 个答案:

没有答案