gpt4 book ai didi

delphi - Delphi 窗体在显示时总是会触发 OnResize 吗?

转载 作者:行者123 更新时间:2023-12-03 15:49:17 25 4
gpt4 key购买 nike

如果我创建一个新的 Delphi 表单, Hook 其 OnResize 事件并运行该应用程序,则在显示窗口之前会触发 OnResize。我不知道对于任何窗口来说这是否总是会发生。

(对于熟悉 Windows API 的人来说,我已将其追溯到 TCustomForm.ShowingChanged 中的 ShowWindow 调用(Delphi 2007 中的 Forms.pas 第 5503 行),这显然会触发 WM_SIZE.. .至少,对于没有设置其他属性的新窗口。我还没有看到 ShowWindow 总是触发 WM_SIZE 的记录,所以我不知道我是否可以依靠这一点。)

那么:我可以依赖 TForm 总是在第一次显示时触发 OnResize 吗?或者是否存在某些情况(也许如果窗口不可调整大小,也许如果Position 属性具有某些值等),其中 OnResize 可能在窗口首次显示之前不会触发?

最佳答案

不,该事件并不总是在表单显示时触发,具体取决于 BorderStyle 等内容。例如,它在 bsSingle 启动时触发,但 bsDialog 则不会。

很容易测试。只需向主窗体的 OnResize 事件添加一些日志记录代码,更改 BorderStyle 并运行您的应用程序即可。

关于delphi - Delphi 窗体在显示时总是会触发 OnResize 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1239407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com