Delphi 7形式,在Vista中不起作用 [英] Delphi 7 forms, anchors not working in Vista

查看:141
本文介绍了Delphi 7形式,在Vista中不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

该软件基于Delphi 7。



在我的XP机器上,窗体按照我的预期大小调整大小。然而,在两台Vista机器上,我的组件的锚点设置为[akLeft,akTop,akRight,akBottom],但是当我调整窗体大小时,组件不会随着窗体伸展,在右边和底部边缘留下空格。在XP机器上,组件正确地展开。



所以,似乎Vista机器忽略了锚属性。任何想法是什么导致这个和如何解决它?



重要更新(François):

我们有相同的我们的 D2007 应用程序和在所有x64 Windows 上的问题。

Andreas的答案确实是修复。
所以它不是D7和Vista相关的。

解决方案

也许它与Windows内核堆栈溢出如果你的控制有很多父母出现的问题。如果您在64位系统上运行它,内核堆栈溢出就会发生得更快。 (更多关于这一点: http://news.jrsoftware.org/news/toolbar2000/msg07779对于这个bug(这也是几乎1:1复制到Delphi 2009 VCL),Embarcadero的CodeCentral是一个解决方法: http://cc.embarcadero.com/Item/25646


The software is built on Delphi 7.

On my XP machine, the form resizes as I expect. However, on two Vista machines, I have components with anchors set to [akLeft, akTop, akRight, akBottom], but when I resize the form, the components don't stretch with the form, leaving blank spaces on the right and bottom edge. On the XP machine, the components correctly stretch with the form.

So, it seems like the Vista machine is ignoring the anchor property. Any ideas what's causing this and how to fix it?

Important update (François):
We had the same problem with our D2007 application and on all x64 windows.
Andreas' answer was indeed the fix. So it is not D7 nor Vista related.

解决方案

Maybe it is related to the "Windows Kernel stack overflow" problem that occurs if your control has many parents. And if you run it on a 64 bit system the kernel stack overflow happens much faster. (more about this here: http://news.jrsoftware.org/news/toolbar2000/msg07779.html)

On Embarcadero's CodeCentral is a workaround for this bug (which is also copied almost 1:1 into the Delphi 2009 VCL): http://cc.embarcadero.com/Item/25646

这篇关于Delphi 7形式,在Vista中不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆