You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Delphi XE程序默认启用系统DPI缩放或编程实现?

解决Delphi程序高DPI系统缩放问题

一、编程实现(推荐:嵌入应用程序清单)

直接在程序中嵌入DPI兼容性清单,让Windows默认启用系统缩放,无需手动设置兼容性选项。

  1. 在Delphi项目中添加Application Manifest文件(如果没有的话):

    • 右键项目 -> Add -> New Item -> 选择Application Manifest(位于Other分类下)。
  2. 编辑清单文件,找到<application>节点,添加以下DPI兼容性声明:

    <application xmlns="urn:schemas-microsoft-com:asm.v3">
      <windowsSettings>
        <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</dpiAware>
        <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">unaware</dpiAwareness>
      </windowsSettings>
    </application>
    

    这会告诉Windows该程序是DPI感知未开启的,系统会自动对其进行缩放,效果和手动开启「系统缩放」一致。

    注意:如果你的Delphi版本较旧(如Delphi XE及以前),可能需要手动创建清单文件并关联到项目:

    • 新建一个名为YourApp.manifest的文本文件,写入上述内容。
    • 在项目选项(Project Options)的Application标签下,找到Manifest选项,选择「Custom manifest」并指定该文件路径。

二、通过注册表默认启用系统缩放

如果需要为已编译的程序批量设置,可通过修改注册表实现:

  1. 打开注册表编辑器(regedit.exe)。

  2. 定位到以下路径(针对当前用户):
    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
    或针对所有用户:
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

  3. 新建字符串值,名称为你的程序完整路径(如C:\YourApp\YourProgram.exe),值设为HIGHDPIAWARE=OFF。

    这个键值对应手动开启「系统缩放」的设置,系统会自动对该程序进行高DPI缩放。

补充说明

  • 若你的程序之前设置过Scaled=True,但现在改为False仍有问题,需确保没有其他代码或第三方组件强制修改了DPI感知设置。
  • 部分Delphi版本默认的清单可能带有dpiAware="true",这会导致系统不自动缩放,必须替换为上述的false和unaware声明。

内容的提问来源于stack exchange,提问作者Andreas Ströbel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 22:39:56