【发布时间】:2018-12-14 11:06:46
【问题描述】:
我在 Delphi XE2 中编写了一个应用程序。我已经更新到 Delphi 10.2。当我编译我的代码时,似乎用户界面非常小。这发生在 Windows 10 中。我正在编写一个空白应用程序,一切似乎都很好,但以前的应用程序似乎很小。我认为这与 DPI 支持有关,但我在 XE2 中编写的前一个似乎运行良好。
我想我必须更改一些设置,也许是在应用程序设置中。但我还没找到。
如果这个问题不符合要求,我会删除它。我真的不想惹任何人生气。
编辑: 这是我的清单文件。如您所述,已启用 DPI。但不是必须的吗?
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
language="*"
processorArchitecture="*"/>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<asmv3:application xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<asmv3:windowsSettings
xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
</assembly>
谢谢
【问题讨论】:
-
请检查使用Delphi 10.2创建的应用程序是否已在清单中声明该应用程序为“高DPI感知”:Delphi High DPI switch between own scaling and Windows scaling
-
这是一个非常复杂的领域。通常,应用程序会显得很小,因为您声明它支持 DPI,但随后无法响应 DPI。通常,如果您声明它不支持 DPI,那么系统将为您扩展应用程序。在这种情况下,您的应用程序会扩展,但会受到文本模糊的影响。您需要做的是阅读 Windows 中的 DPI 意识,并使用空应用程序进行一些实验。
-
@DavidHeffernan:他已经尝试过使用空应用程序:“我正在编写一个空白应用程序,一切看起来都很棒,但之前的应用程序似乎很小。”
-
感谢您的所有 cmets。是的,在自定义清单中启用了 DPI。将其设置为 false 可解决此问题。但正如@DavidHeffernan 所说,我认为这会很模糊。
-
@HeartWare 我说,“做一些实验”。我的意思是探索各种选项的影响,首先阅读它们。学习理论。通过尝试将其付诸实践来测试您对该理论的理解。
标签: delphi