我的应用程序中的窗口从屏幕边缘弹出,这当然是一个问题,因为某些窗口是模态的并且无法关闭(您甚至不知道它们在那里)。
我正在使用 TurboPower Orpheus 组件,它会记住每个表单的位置和大小,然后在再次显示表单时恢复它。它将大小和位置保存在 INI 文件中。
我可以采取什么措施来防止窗口显示出屏幕的一侧?
最佳答案
如果您使用多个显示器然后断开其中一个显示器的连接(例如拔出笔记本电脑时),这种情况很常见。或者,如果您将笔记本电脑连接到更高分辨率的屏幕上。或者使用远程桌面等。 补救措施是通过健全性检查来覆盖“记住我的位置”行为,以查看 left+width 是否超过屏幕的宽度(Screen.Monitors 数组,实际上 - 谢谢大家),反之亦然。高度。
理想情况下,您可以通过减去差异来“碰撞”,这样您就可以抵住窗口想要跨越的边缘。
另外,看看 Orpheus 是否有更新可以修复此问题。如果没有,您可以获取源代码,进行更正(可选),然后将其贡献回项目。我记得是 OSS。
关于delphi - 窗口出现在屏幕边缘之外(Delphi),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3160904/