Перейти к содержимому

Delphi как изменить масштаб экрана монитора windows

  • автор:

DELPHI МАСШТАБ ЭКРАНА

Delphi позволяет легко изменять масштаб экрана приложения. Для этого необходимо установить свойство Scaling на форме приложения:

Существует несколько значений, которые можно установить для этого свойства:

  • TScaling.Scale — автоматический масштаб приложения в зависимости от выбранного масштаба системы.
  • TScaling.Custom — заданный пользователем масштаб.
  • TScaling.None — масштабирование отключено.

Например, для установки масштабирования на 150% достаточно установить значение Custom:

В данном случае масштаб увеличится на 50% по сравнению с нормальным размером.

Увеличился экран на компьютере Что делать?

Как сделать нейросеть в Delphi

Delphi OpenGL часть 3. Масштабирование и поворот изображения

Создание теста на Delphi кратко и по теме

Использование класса TChart для построения графиков функций

Разработка программы для просмотра картинок в Delphi

Delphi — работа с графикой (canvas)

сообщение WM_GETDPISCALEDSIZE

Это сообщение сообщает операционной системе, что окно будет иметь размер для измерений, отличных от значения по умолчанию.

Это сообщение отправляется в окна верхнего уровня с DPI_AWARENESS_CONTEXT per Monitor версии 2 перед отправкой сообщения WM_DPICHANGED и позволяет окне вычислить требуемый размер ожидающего изменения DPI. Так как линейное масштабирование DPI является поведением по умолчанию, это полезно только в сценариях, когда окно хочет масштабироваться нелинейно. Если приложение отвечает на это сообщение, результирующий размер будет кандидатом прямоугольника, отправленного в WM_DPICHANGED.

Используйте это сообщение для изменения размера прямоугольника, предоставленного WM_DPICHANGED .

#define WM_GETDPISCALEDSIZE 0x02E4 

Параметры

WPARAM содержит значение DPI. Масштабируемый размер окна, заданный приложением, должен быть вычислен, как если бы окно переключилось на этот DPI.

LPARAM — это указатель на структуру SIZE. Значение _In_ в LPARAM — это ожидающий размер окна после перемещения, инициированного пользователем, или вызова SetWindowPos . Если окно изменяется, этот размер не обязательно совпадает с текущим размером окна во время получения сообщения.

Значение _Out_ в LPARAM должно быть записано приложением, чтобы указать требуемый масштабируемый размер окна, соответствующий указанному значению DPI в WPARAM.

Возвращаемое значение

Функция возвращает boOL. Возвращая значение TRUE, указывает, что вычислен новый размер. Возвращая значение FALSE, указывает, что сообщение не будет обработано, а масштабирование линейного DPI по умолчанию будет применяться к окну.

Замечания

Это сообщение отправляется только в окна верхнего уровня с контекстом осведомленности о DPI для per Monitor версии 2.

Это событие необходимо для облегчения корректного нелинейного масштабирования и гарантирует, что позиция окна остается постоянной в связи с курсором и при перемещении между мониторами.

В DefWindowProc нет конкретной обработки этого сообщения по умолчанию. Что касается всех сообщений, которые он не обрабатывает явно, DefWindowProc возвращает ноль для этого сообщения. Как отмечалось выше, этот возврат сообщает системе использовать линейное поведение по умолчанию.

Requirements

Требование Значение
Минимальная версия клиента Windows 10 версии 1703 [только классические приложения]
Минимальная версия сервера Windows Server 2016 [только классические приложения]
Верхний колонтитул Winuser.h

DELPHI МАСШТАБ ЭКРАНА

Delphi позволяет легко изменять масштаб экрана приложения. Для этого необходимо установить свойство Scaling на форме приложения:

Существует несколько значений, которые можно установить для этого свойства:

  • TScaling.Scale — автоматический масштаб приложения в зависимости от выбранного масштаба системы.
  • TScaling.Custom — заданный пользователем масштаб.
  • TScaling.None — масштабирование отключено.

Например, для установки масштабирования на 150% достаточно установить значение Custom:

В данном случае масштаб увеличится на 50% по сравнению с нормальным размером.

Увеличился экран на компьютере Что делать?

Как сделать нейросеть в Delphi

Delphi OpenGL часть 3. Масштабирование и поворот изображения

Создание теста на Delphi кратко и по теме

Использование класса TChart для построения графиков функций

Разработка программы для просмотра картинок в Delphi

Delphi — работа с графикой (canvas)

Рабочий стол на несколько мониторов

Кто знает, как можно в ОС Windows расширить рабочий стол на несколько мониторов, и как с ними работать (апи функции Delphi). Необходимо, чтобы окно одного приложения было на разных мониторах, но на одном рабочем столе.

Отслеживать
51.4k 88 88 золотых знаков 269 269 серебряных знаков 508 508 бронзовых знаков
задан 14 мар 2011 в 9:45
109 2 2 серебряных знака 11 11 бронзовых знаков

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Если драйвер видеокарты позволяет, то расширение на несколько мониторов делается в свойствах экрана. Там нужно проставить галочки в нужных местах.

В Delphi в модуле Unit есть свойство Screen, которое в свою очередь имеет свойства MonitorCount и Monitors[Index: Integer]: TMonitor. Обычно их достаточно, чтобы работать с несколькими экранами.

Например, чтобы растянуть форму на выбранный монитор:

if Screen.MonitorCount > 1 then begin form.Left:=Screen.Monitors[n].Left; form.Top:=Screen.Monitors[n].Top; form.Width:=Screen.Monitors[n].Width; form.Height:=Screen.Monitors[n].Height; end 

где n — это номер выбранного монитора. Подробнее про поддержку мониторов в Windows: Multiple Display Monitors.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *