Forms DelphiXe7IDE在窗体打开时稍微移动控件/调整控件大小

Forms DelphiXe7IDE在窗体打开时稍微移动控件/调整控件大小,forms,delphi,Forms,Delphi,从应用程序中打开标准VCL表单时,几个控件会稍微移动或调整大小。e、 g.短几个像素或向左几个像素。保存表单显然会提交这些更改。有人知道这是什么原因吗?我怎样才能阻止它 我们的应用程序是在Delphi7中开发的,我认为自从我们最近将其迁移到XE7之后,这个问题就开始了。在对各种表单进行了各种代码更改之后,我们开始注意到控件发生了一些移动/调整了大小,并认为它们是错误的。但今天我注意到,它发生在表单打开时。该表单以前保存在XE7中(它不仅仅是D7表单的第一次打开) 这些控件似乎在高度、宽度或左侧属

从应用程序中打开标准VCL表单时,几个控件会稍微移动或调整大小。e、 g.短几个像素或向左几个像素。保存表单显然会提交这些更改。有人知道这是什么原因吗?我怎样才能阻止它

我们的应用程序是在Delphi7中开发的,我认为自从我们最近将其迁移到XE7之后,这个问题就开始了。在对各种表单进行了各种代码更改之后,我们开始注意到控件发生了一些移动/调整了大小,并认为它们是错误的。但今天我注意到,它发生在表单打开时。该表单以前保存在XE7中(它不仅仅是D7表单的第一次打开)

这些控件似乎在高度、宽度或左侧属性上丢失了几个像素。我没有看到这些值增加,只是减少了。不是表单上的所有控件,只是一些。问题并不局限于一种形式。Form.Scaled属性为false

是否对某些内容进行了取整/重新计算?有两个开发人员在开发这个应用程序——使用不同的分辨率开发可能会导致问题吗

非常感谢你的建议=)

编辑!查看应用的更改的差异,我认为所有调整的控件都有非默认的锚定设置。e、 g.向左移动2像素的按钮被锚定[akTop,akRight]。它位于一个被锚定的面板上[akLeft,akTop]。另一个从宽度和高度丢失2个像素的控件被锚定[akLeft,akTop,akRight,akBottom]。我刚刚恢复了更改,通过编辑dfm更改了锚定,并再次打开表单:先前移动的控件没有移动。我确信这与锚定有关


编辑2!容易重复!它与控件的锚点及其父控件(TPanel)的边框样式相关。添加带有TPanel的表单,并在面板中添加TLabel。将TLabel设置为锚定[akTop,akRight]。将TPanel设置为无倒角、CTRL3d=False、BorderStyle=bsSingle和BorderWidth=1。请注意TLabel的Left属性。保存表单。再打开一次。看看TLabel的左属性。它向左移动了2个像素。继续打开、保存和关闭表单,并观察标签从右向左移动

不知道这是否是您的问题,但在Delphi中以与上次保存的表单不同的分辨率在监视器上打开表单时,总是会弄乱我们的表单。感谢您的输入@GuidoG,我认为现在它与diff开发人员无关,只是锚定其父级的控件和边框样式设置。我在过去调试过此类问题,方法是启用VCL源代码调试,在forms constructor/dfm流方法中设置断点,运行应用程序并查看什么样的“功能”把事情搞砸了,我们也有同样的问题。我们在XE2中有了它,现在仍然是10个座位。感谢您的确认@Diedie2不知道这是否是您的问题,但是在Delphi中打开一个与上次保存的表单分辨率不同的表单总是会弄乱我们的表单。感谢您的输入@GuidoG,我认为现在它与diff开发人员无关,只是锚定其父级的控件和边框样式设置。我在过去调试过此类问题,方法是启用VCL源代码调试,在forms constructor/dfm流方法中设置断点,运行应用程序并查看什么样的“功能”把事情搞砸了,我们也有同样的问题。我们在XE2中有它,现在仍然在10个座位。感谢您的确认@die2