Non è così semplice.
FireMonkey ha funzione chiamata risoluzione http://docwiki.embarcadero.com/RADStudio/XE5/en/Working_with_Native_and_Custom_FireMonkey_Styles
E 'actualy caratteristica fredda. Se lavori con schermi con retina display, qualsiasi cosa tu dipinga sullo schermo sarà veramente piccola. Ad esempio, la risoluzione in pixel di iPhone è vicino a iPad 1 e 2, ma lo schermo è due volte più grande.
Così su iPhone sarà
var
ScreenSize: TSize;
begin
ScreenSize := Screen.Size;
Caption := IntToStr(ScreenSize.Width) + '*' + IntToStr(ScreenSize.Height);
end;
sarà simile a 320x480. E le stesse forme.
Ma se si utilizza utilizza 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;
Si ottiene la risoluzione dello schermo effettiva in pixel.
Questo vale anche per Mac con display Retina.
fonte
2013-11-24 12:03:35
Ecco [ 'un example'] (http : //blogs.embarcadero.com/pawelglowacki/2012/10/08/39817) di uso corretto di ['IFMXScreenService'] (http://docwiki.embarcadero.com/Libraries/XE4/en/FMX.Platform. Interfaccia IFMXScreenService). – TLama
@TLama - Grazie. – Bill
@Bill Non è possibile chiamare metodi su un tipo di interfaccia. È necessario ottenere un riferimento all'interfaccia prima di poter effettivamente eseguire i metodi. –