SQLRU.net
Разработка приложений баз данных

Начало » Программирование » Delphi » Поведение GetScaleFactorForMonitor- DEVICE_SCALE_FACTOR - Win10
Поведение GetScaleFactorForMonitor- DEVICE_SCALE_FACTOR - Win10 [сообщение #5979] Fri, 14 March 2025 15:43 Переход к следующему сообщению
Keks в настоящее время не в онлайне  Keks
Сообщений: 5
Зарегистрирован: April 2024
Junior Member
Надо была подсчитать мне
PixelsPerInch
и размеры монитора
GetSystemMetrics(SM_CXSCREEN);
GetSystemMetrics(SM_CYSCREEN);

Начал с D7 c параметров экрана 125%
получил результаты

SM_CXSCREEN   1536
SM_CYSCREEN   864
Screen.PixelsPerInch    96

Нашел код на Lazarus под Win10
DEVICE_SCALE_FACTOR   125
SM_CXSCREEN   1536
SM_CYSCREEN   864

адаптировал D7 под Win10

DEVICE_SCALE_FACTOR   100
SM_CXSCREEN   1536
SM_CYSCREEN   864
Screen.PixelsPerInch    96

Закомпилировал под D12.1
DEVICE_SCALE_FACTOR   125
SM_CXSCREEN   1920
SM_CYSCREEN   1080
Screen.PixelsPerInch    96

Один код для вызова функций MS
три разных результата D7, D12, Lazarus
Кусок кода прилагаю
var
  DEVICE_SCALE_FACTOR: UINT;
...    
  GetScaleFactorForMonitor: function(monitor: HMONITOR;
    var DEVICE_SCALE_FACTOR: UINT): HRESULT; stdcall;
...

  hShcore := GetModuleHandle('Shcore');
  GetScaleFactorForMonitor := GetProcAddress(hShcore, 'GetScaleFactorForMonitor');
  ErrCode := GetScaleFactorForMonitor(Monitor.Handle, DEVICE_SCALE_FACTOR);
  Memo1.Clear;
  Memo1.Lines.Add('DEVICE_SCALE_FACTOR   ' + IntToStr(DEVICE_SCALE_FACTOR));
Я понимаю разные среды программирования но это вызов системных функций, что не так?
Re: Поведение GetScaleFactorForMonitor- DEVICE_SCALE_FACTOR - Win10 [сообщение #5982 является ответом на сообщение #5979] Sat, 15 March 2025 22:36 Переход к предыдущему сообщению
BlackEric в настоящее время не в онлайне  BlackEric
Сообщений: 371
Зарегистрирован: June 2022
Senior Member
А кто из 3х врет?

Апликуха везде 32х битная?


Is GetScaleFactorForMonitor winapi returning incorrect scaling factor?
Вот жалуются на функцию.
Предыдущая тема: Поведение GetScaleFactorForMonitor- DEVICE_SCALE_FACTOR - Win10 - Del
Следующая тема: Модальная форма, OnKeyPress и прочие (OnKey*) и код #13
Переход к форуму:
  


Текущее время: Wed Mar 26 01:32:13 GMT+3 2025

Общее время, затраченное на создание страницы: 0.00914 секунд