为什么不建议在运行时更改formstyle?

为什么不建议在运行时更改formstyle?,第1张

概述在关于 TCustomForm.FormStyle的Delphi文档中,添加了一条注释,指出:“不建议运行更改FormStyle.” 我想知道为什么不建议在运行时更改formstyle. 从用户界面的角度来看是不可取的,还是会出现一些技术问题?在运行时更改formstyle后会出现什么样的问题? 用例 我们希望改进MDI应用程序的多监视器支持.目前,所有子窗口都在主窗口(MDI父窗口)中打开. 在关于 TCustomForm.FormStyle的Delphi文档中,添加了一条注释,指出:“不建议在运行时更改FormStyle.”

我想知道为什么不建议在运行时更改formstyle.
从用户界面的角度来看是不可取的,还是会出现一些技术问题?在运行时更改formstyle后会出现什么样的问题?

用例

我们希望改进MDI应用程序的多监视器支持.目前,所有子窗口都在主窗口(MDI父窗口)中打开.用户希望能够在主窗口外打开/移动子窗口,以便子窗口将作为单独的浮动窗口打开,该窗口可以位于windows桌面的任何位置.

我在Adobe Photoshop,Google Chrome和Microsoft Internet Explorer中看到了此功能的示例. (标签可以从标签栏移动,并在单独的浮动窗口中打开)

解决方法 在运行时将FormStyle从fsnormal更改为fsMDIform或fsMDIChild需要重新创建窗口句柄,这反过来又需要为窗体上的所有控件重新创建所有窗口句柄.当发生这种情况时,Delphi无法控制的东西很多:也许你正在使用一些依赖于某些windows控件的第三方控件,而第三方控件却不知道如何保存它的状态.重新创建Window句柄时,用户将失去所有工作.

幸运的是,你可以解决这个问题:

>停止使用MDI,让所有窗口“浮动”并以其他方式处理它们. MDI已经过时了一段时间.>只要这样做,取决于你拥有的控件类型,它可能会正常工作.如果没有,看看出了什么问题并解决了它(例如:您可能需要自己保存一些控件的状态并在交换后恢复它)>尝试将所有东西放在框架上;当用户想要移动时,创建一个新的空非MDI / MDI表单,重新父框架,销毁旧表单.

总结

以上是内存溢出为你收集整理的为什么不建议在运行时更改formstyle?全部内容,希望文章能够帮你解决为什么不建议在运行时更改formstyle?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1272953.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存