如何在Firemonkey XE3中获取屏幕分辨率?

5
我该如何在Firemonkey 2(Delphi XE3)中获取屏幕分辨率?
1个回答

9

XE3中的情况已经全部改变。平台支持已经完全重构。更多信息请参见Pawel Glowacki的文章

var
  ScreenSvc: IFMXScreenService;
  Size: TPointF;
begin
  if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, IInterface(ScreenSvc)) then
  begin
    Size := ScreenSvc.GetScreenSize;
    ....
  end;
end;

尽管进行了全面改进,但如果您有多个显示器,则仍然没有太大的用处。也许FMX2中有一些多监视器支持,但显然不在IFMXScreenService中提供。


2
它在 FMX.Platform.IFMXScreenService 中。 - LU RD
1
抱歉,我看XE2文档时有点不清楚。更新现在已经纠正了。 - David Heffernan
哦,谢谢,它正在工作。我能在Windows中获取没有开始面板的屏幕高度(宽度)吗? - Wayfer
@Wayfer 我不知道有没有这样的方法。然而,您可以使用新的基于注册表的平台服务来注册自己的插件,并报告此问题。您需要编写 Windows、Mac 和任何其他目标的条件代码。但是,这将使您能够拥有高级别的代码,而无需了解平台的变化。调用 Platform.TPlatformServices.AddPlatformService 来注册一个新的服务。 - David Heffernan
MSDN主要记录长期存在的代码,其中大部分甚至被WinE/Odin/ReactOS复制。FMX正在进行重大重构,这一过程正在进行中... - Arioch 'The
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接