我正在使用Delphi XE5。我想将VCL样式添加到我的一个项目中但遇到问题。设置新的vcl样式后,所有句柄都会更改。例如,如果已经存在项目,我遇到listview问题,如果我有活动的tcp套接字,他们就不再工作了。我需要重新启动应用程序并在启动时选择样式,或者我需要重新创建所有内容,但这很烦人。我现在无法粘贴任何代码,因为我不在我的开发PC中。但我相信你也遇到过这个问题?
有人能告诉我在运行时更改vcl syles的最佳和最安全的方法吗?
由于
答案 0 :(得分:4)
在运行时更改VCL样式会导致窗口重新创建。你无能为力。此外,窗户娱乐是VCL的现实之一。当其他一些事件导致VCL窗口娱乐时,您的程序可以在其他时间面对它。所以,你的问题与VCL风格并没有直接关系。相反,你的问题是你使用的是套接字通信窗口句柄,它的生命周期比它们需要的时间短。
解决方案是使用您控制其寿命的窗口句柄。使用AllocateHWnd
创建此类窗口句柄。