Как получить разрешение экрана в Firemonkey 2 (Delphi XE3)?
Как получить разрешение экрана в Firemonkey XE3?
Ответы (1)
Все изменилось в XE3. Поддержка платформы была полностью переработана. Дополнительную информацию см. в статье Павла Гловацки.
var
ScreenSvc: IFMXScreenService;
Size: TPointF;
begin
if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, IInterface(ScreenSvc)) then
begin
Size := ScreenSvc.GetScreenSize;
....
end;
end;
Несмотря на капитальный ремонт, это все еще не очень полезно, если у вас несколько мониторов. Возможно, в FMX2 есть какая-то поддержка мультимонов, но в IFMXScreenService
ее явно нет.
person
David Heffernan
schedule
09.10.2012
В платформе XE3 нет метода GetScreenSize.
- person Wayfer; 09.10.2012
Извините, я четко просматривал документы XE2. Обновление теперь исправляет это.
- person David Heffernan; 09.10.2012
О, спасибо, все работает. И можно ли получить высоту (ширину) экрана без панели Пуск в Windows?
- person Wayfer; 09.10.2012
@Wayfer Насколько я знаю, нет. Однако вы можете использовать новые службы платформы на основе реестра, чтобы зарегистрировать свой собственный плагин, который будет сообщать об этом. Вам придется написать условный код для Windows и Mac и любых других целей. Но это позволит вам иметь высокоуровневый код, которому не нужно знать о вариантах платформы. Позвоните
Platform.TPlatformServices.AddPlatformService
, чтобы зарегистрировать новую услугу.
- person David Heffernan; 09.10.2012
Интересно, как это будет работать в конфигурации с несколькими мониторами. Эти избалованные поклонники Apple, они любят эти качественные телевизоры :-)
- person Arioch 'The; 10.10.2012
@Arioch'The Единственный способ узнать это - прочитать код. Документы не говорят. Что довольно хромает на мой взгляд. Сравните это с MSDN.
- person David Heffernan; 10.10.2012
MSDN в основном документирует давно устоявшийся код. Тот, который даже в основном воспроизводился WinE/Odin/ReactOS. FMX находится в стадии разработки, и в прямом эфире проводится крупный рефакторинг...
- person Arioch 'The; 10.10.2012
@Arioch'Документация Delphi также в основном документирует давно установленный код. Документация MSDN для WinRT существовала до того, как этот продукт был запущен. Он был разработан в тандеме с продуктом. Документация FMX отстала на годы.
- person David Heffernan; 10.10.2012