将德尔福形式总是火onResize受到时,它的显示?(Will a Delphi form alwa

2019-09-22 08:34发布

如果我创建一个新的Delphi形式,勾其onResize受到事件,并运行应用程序时显示的窗口前,在onResize受到激发。 我不知道的是这是否会经常发生,对任何窗口。

(对于任何熟悉Windows API,我已经将它追溯到2007年德尔福在TCustomForm.ShowingChanged(Forms.pas线5503的呼叫ShowWindow函数),这显然会触发WM_SIZE ......至少,对于任何一个新窗口其他属性设置的。我还没有看到它记载,的ShowWindow始终闪光WM_SIZE ,所以我不知道我是否能在这个或不计。)

所以: 我可以依靠TForm的总是 onResize受到发射时,它第一次显示? 或者有没有的情况下(也许如果窗口是不可调整大小的,也许如果Position属性有一定的价值,等等),其中onResize受到可能不会在窗口之前进行发射,首先显示?

Answer 1:

不,这事件不总是,这取决于之类的东西边框火的时候,形式显示。 例如,它触发启动时的bsSingle,而不是bsDialog。

这很容易测试。 只需添加一些日志代码到主窗体的onResize受到事件,改变边框并运行你的应用程序。



文章来源: Will a Delphi form always fire OnResize when it's shown?