我有一个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。
干杯