FireMonkey与GetSystemMetrics有什么相似之处吗?

时间:2012-05-12 14:16:05

标签: delphi firemonkey

我正在使用Delphi 2010重写一个旧的应用程序,我想在我的代码中放置占位符,以便将它移植到XE2。只是好奇FireMonkey是否与GetSystemMetrics相当。我特别感兴趣的是:

  • GetSystemMetrics的(SM_CXSCREEN)
  • GetSystemMetrics的(SM_CYSCREEN)

2 个答案:

答案 0 :(得分:5)

如果您只需要主显示器尺寸,而不是桌面尺寸( n 显示器总和),您可以使用:

uses ..., FMX.Platform;


var
  p: TPointF;
begin
  p := Platform.GetScreenSize;
  ShowMessage(Format('X: %f' + LineFeed + 'Y: %f', [p.X, p.Y]));

Windows OS X

答案 1 :(得分:1)

事实上,SM_CXSCREENSM_CYSCREEN可能根本不应该使用。这只是告诉你主监视器的尺寸。在这些多显示器的日子里,这并不是非常有用。在VCL代码中,您应该使用Screen.Monitors[]和相关属性来获取有关监视器的信息。

对于FMX,没有多显示器支持,也没有独立于平台的方法来查找屏幕尺寸指标。在你的鞋子里,我只需使用Screen.Monitors[]并在你到达时处理FMX端口。当您移植到FMX时,您将不得不重新编写所有GUI代码,而这个特殊问题是您最不担心的问题。

最后,当你说

  

我想在我的代码中添加占位符,以便将其移植到XE2

我相信您知道移植到FMX不是强制性的。 VE仍​​然受支持并在XE2中可用,我无法在很长一段时间内看到它被移除。您可以移植到XE2而无需与FMX有任何关系。