作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 C++ Builder v. 10.2.3,我想将正在调整大小的 TForm 居中。为此,我使用 TScreen::WorkArea 值。但是,在 Windows 10 缩放比例为 125% 的系统上运行时,代码无法正常工作,因为 TForm 已放大。如何确定是否发生这种缩放,然后进行相应调整? FireMonkey 中是否有内置功能可以执行此操作?我应该注意到,在 Windows 10 中缩放 > 100% 时,TForm::TPosition 值似乎无法正常工作 - 例如,将其设置为 ScreenCenter 似乎有类似的问题,它实际上并未居中。
最佳答案
此函数将返回屏幕缩放比例,即 1.25(如果您在 Windows 上使用 125% 缩放比例):
function GetScreenScale: Single;
var ScreenService: IFMXScreenService;
begin
Result := 1;
if TPlatformServices.Current.SupportsPlatformService (IFMXScreenService, IInterface(ScreenService)) then
Result := ScreenService.GetScreenScale;
end;
请注意,在 Mac 上,唯一可能的屏幕缩放比例是 1.0(非视网膜)和 2.0(视网膜)。然而,在 Mac 上,TScreen 返回的值已经经过缩放,因此不需要校正。
关于delphi - 如何在 FireMonkey 中缩放屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51976097/
我是一名优秀的程序员,十分优秀!