delphi - 在 4K 显示器上缩放 DbGrid 指示器和 DbNavigator 图标
问题描述
我在具有 4K 显示屏的 HP Spectre x360 上使用 DPro Rio 10.3。DbGrids 上的指示器和 DbNavigator 控件的图标可在 1980 X 1080 下精细缩放,但在 4K 分辨率下几乎不可见。文本在任何分辨率下都可以很好地缩放。
我查看了这两个组件的源代码,它们包含使用 LoadfromResource 从可执行文件加载适当图形的方法。TDbNavigator 在运行时在虚拟方法 SetButtonGlyph 中调用 LoadfromResource。
此外,DbGrid 代码似乎努力在其中一种方法中缩放指标。但是,这不起作用,至少在我的笔记本电脑上是这样。
仅供参考,我已将表单的 Scaled 属性设置为 TRUE。我还在清单中尝试了几种设置,但没有任何区别。
我该如何解决这个问题。是因为这些控件使用 16 x 16 图形还是有其他原因?有没有办法在可执行资源文件中或在运行时以编程方式用更高分辨率的图形替换每个组件的图形?
解决方案
我从 TMS Software 网站上的帖子中偶然发现了答案。为了在 4k 屏幕上正确显示,必须将 DPI 感知设置为无。我在里约热内卢和东京都对此进行了测试,并且有效。对于 Rio,您可以选择 Project|Options 并转到 Application 部分。选择清单,然后从 DPI Awareness 的下拉框中选择无。
对于东京,还有项目|选项,转到应用程序并取消选中启用 DPI。
推荐阅读
- python-3.x - 如何在不知道 Python 中哪个更大的情况下获取两个值之间的值列表?
- mysql - 在laravel 6中搜索由空格分隔的多个单词不起作用
- c# - 如何使用一段代码处理Asp.net core上的所有Http请求
- list - 使用列表视图设置视图背景颜色时遇到问题--SwiftUI
- angular - 如何在最新的 Ionic 上使用 ReactiveForms
- java - 将新的 utm 参数附加到 Spring Security Filter 中的 URL
- pine-script - 松树脚本 - 如果条件为真,则在前 6 支蜡烛中绘制三角形 2 次
- javascript - 有没有办法在 Office.js Excel 插件中更改线条形状的颜色?
- formal-verification - 您如何正式验证“没有算术或其他异常”?
- unix - 使用 sed 提取特定的分隔字段