delphi - 如何在 FireMonkey 中缩放屏幕?

标签 delphi firemonkey c++builder

使用 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/

相关文章:

user-interface - 关于 Firemonkey 未在德尔福西雅图显示的提示

delphi - 在 C++ Builder 中连接和使用 Delphi DLL

c++builder - 使用 clang 分析器分析 Embarcadero RAD Studio 项目

delphi - 条形码扫描仪和表单的默认按钮

delphi - delphi 无效参数

delphi - 在编译器上找不到标识符(Free Pascal)

delphi - 清除 Firemonkey TListView 搜索文本

delphi - 使用 cairo、librsvg 和 delphi 绘制 SVG,更改所有路径的颜色

android - 为什么我的 Delphi TCanvas.DrawLine 在 Android 上运行时不出现

delphi - 如何设置表单高度大于1096像素?