这不是那么简单。
Firemonkey 具有称为分辨率的功能
http://docwiki.embarcadero.com/RADStudio/XE5/en/Working_with_Native_and_Custom_FireMonkey_Styles
这实际上是一个很酷的功能。如果您使用具有视网膜显示的屏幕,那么您在屏幕上绘制的任何内容都会非常小。例如,iPhone 的像素分辨率接近 iPad 1 和 2,但屏幕却大了一倍。
所以在 iPhone 上会
var
ScreenSize: TSize;
begin
ScreenSize := Screen.Size;
Caption := IntToStr(ScreenSize.Width) + '*' + IntToStr(ScreenSize.Height);
end;
看起来像 320x480。和相同的形式。
但是如果你使用使用 FMX.Platform;
procedure ShowScreenSize;
var
ScreenSvc: IFMXScreenService;
begin
if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, IInterface(ScreenSvc)) then
begin
ScreenSize := Format('Resolution: %fX%f', [ScreenSvc.GetScreenSize.X, ScreenSvc.GetScreenSize.Y]);
ShowMessageFmt('Screen.Width = %g, Screen.Height = %g', [ScreenSize.X, ScreenSize.Y]);
end;
end;
您将获得以像素为单位的实际屏幕分辨率。
这也适用于配备 Retina 显示屏的 Mac。