为什么Screen返回的分辨率低于我的Windows 8平板电脑设置为?

时间:2013-08-06 09:10:57

标签: delphi windows-8 tablet dpi

我有一台Windows 8平板电脑,全高清分辨率为1920x1080像素。

但是当我使用Delphi的Screen对象获取Screen.WidthScreen.Height时,它将返回在Windows 8平板电脑上运行的1280x720的分辨率。

问题根源在哪里?在Windows(平板电脑)方面还是在Delphi方面?我使用Delphi 7到XE2的结果相同。这似乎是一个平板电脑问题,而不是一般的Windows 8问题,因为我的Windows 8.1桌面计算机上没有这样的行为。


结论

我只是想强调我的问题的原因,因为它在评论中有点隐藏 默认情况下,我的平板电脑上的Windows 8使用150%DPI。 1080px是720px的150%。因此应用程序可以使用720px。将DPI百分比降低到100%会产生预期的1080px分辨率。

2 个答案:

答案 0 :(得分:4)

这可能是与DPI有关的问题。 Aero可以通过两种方式处理高DPI情况:

  • 对应用程序说,DPI大于标准96,并让它自行扩展
  • 在应用程序中说,DPI通常为96,并使用一些图像缩放算法缩放它的窗口(产生模糊)

可能处于第二种情况Aero不仅关注DPI,还关注屏幕分辨率。


如果第二种情况是你的情况,那么不要关闭缩放。只需让您的应用程序了解DPI: http://www.rw-designer.com/DPI-aware - 一般信息 http://www.micro-isv.asia/2010/09/high-dpi-support-in-windows-vista-and-7/ - 德尔福

答案 1 :(得分:2)

全高清的定义值得商榷。

业界采用全高清这个术语作为消费者友好型营销术语,意味着该设备是安全的购买,因为它可以显示至少一种可用的高清分辨率。

您的设备支持16:9的宽高比,这是HD的国际标准。

两个最知名的full HD决议是:

  • 1280 x 720(720p)
  • 1920 x 1080(1080p)

您的设备认为它是full HD只是意味着设备的显示器至少支持720p的分辨率,最高支持1080p。

鉴于这是平板电脑,它的原始分辨率应该是720p HD。 您可以强制1080p的事实恰恰意味着,标记为Full HD的显示器能够显示1080p。并不意味着1080p是它的原始分辨率。

要回答您的问题,Delphi 既不 Windows也有问题。