我正在使用Delphi 2010重写一个旧的应用程序,我想在我的代码中放置占位符,以便将它移植到XE2。只是好奇FireMonkey是否与GetSystemMetrics相当。我特别感兴趣的是:
答案 0 :(得分:5)
如果您只需要主显示器尺寸,而不是桌面尺寸( n 显示器总和),您可以使用:
uses ..., FMX.Platform;
var
p: TPointF;
begin
p := Platform.GetScreenSize;
ShowMessage(Format('X: %f' + LineFeed + 'Y: %f', [p.X, p.Y]));
答案 1 :(得分:1)
事实上,SM_CXSCREEN
和SM_CYSCREEN
可能根本不应该使用。这只是告诉你主监视器的尺寸。在这些多显示器的日子里,这并不是非常有用。在VCL代码中,您应该使用Screen.Monitors[]
和相关属性来获取有关监视器的信息。
对于FMX,没有多显示器支持,也没有独立于平台的方法来查找屏幕尺寸指标。在你的鞋子里,我只需使用Screen.Monitors[]
并在你到达时处理FMX端口。当您移植到FMX时,您将不得不重新编写所有GUI代码,而这个特殊问题是您最不担心的问题。
最后,当你说
时我想在我的代码中添加占位符,以便将其移植到XE2
我相信您知道移植到FMX不是强制性的。 VE仍然受支持并在XE2中可用,我无法在很长一段时间内看到它被移除。您可以移植到XE2而无需与FMX有任何关系。