RAD Studio保存Delphi窗体时组件自动对齐网格问题求助
RAD Studio保存Delphi窗体时自动调整组件尺寸的解决办法
问题现象
- 保存Delphi窗体时,组件会自动对齐网格,导致布置好的窗体运行时因尺寸调整出现组件重叠
- 从Git检出已有窗体,仅点击保存就会触发窗体尺寸调整,产生大量非手动修改的变更
- 代码示例对比:
修改前:
修改后:object pnlTop: TPanel Left = 0 Top = 0 Width = 793object pnlTop: TPanel Left = 0 Top = 0 Width = 785 - 已尝试关闭窗体设计选项中的「对齐网格」功能,但无效果
需检查的关键设置
以下几个容易遗漏的设置,逐一排查:
全局窗体设计器对齐设置
除了单个窗体的设置,还要检查全局选项:- 点击「工具」→「选项」→「用户界面」→「窗体设计器」
- 确保「对齐到网格」(Snap to Grid)未勾选
- 同时确认「网格大小」数值,若网格尺寸过大,部分版本可能仍会隐性调整控件位置
窗体自身的缩放与约束设置
- 选中窗体,在对象检视器中找到
Scaled属性,设为False,避免设计器自动缩放控件尺寸 - 检查
Constraints属性,确保没有强制的宽高限制,防止窗体被自动调整大小
- 选中窗体,在对象检视器中找到
注册表级的布局调整禁用设置
部分RAD Studio版本(如10.4及以上)有隐藏设置,需通过注册表修改:- 打开注册表编辑器,定位到
HKEY_CURRENT_USER\Software\Embarcadero\BDS\<你的版本号>\FormDesigner - 添加或修改
DisableAutoLayoutAdjust为DWORD类型,值设为1 - 修改后重启RAD Studio生效
- 打开注册表编辑器,定位到
项目的DPI缩放设置
- 打开「项目」→「选项」→「Application」→「Appearance」
- 将「Scaling」设置为「None」或「Disable DPI scaling」,避免设计器基于系统DPI自动调整布局
Git文件格式设置
- 若Git行尾格式转换(LF转CRLF)导致.dfm文件被修改,会触发设计器重新解析布局
- 在仓库根目录添加
.gitattributes文件,写入*.dfm binary,强制将dfm文件视为二进制文件,避免自动转换行尾
内容的提问来源于stack exchange,提问作者Philip Long
相关产品推荐
相关产品推荐

