Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Про Scale / 14 сообщений из 14, страница 1 из 1
03.07.2017, 18:17:55
    #39482004
Про Scale
1. Запустилось приложение, когда в Windows было выставлено 100%. Приложение свернули - открыли настройки Windows и изменили на 125%. Как это совершенно точно определить - и то, что масштаб был изменён, и то, с какого значения на какое именно масштаб был изменён?

2. Масштаб в Windows XP отличается чем от масштаба в Windows 10?
...
Рейтинг: 0 / 0
03.07.2017, 19:21:48
    #39482042
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про Scale
Любо пытныйПриложение свернули - открыли настройки Windows и изменили на 125%.

Эта операция требует перезагрузки, которую приложение не переживёт.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
03.07.2017, 19:36:48
    #39482055
Про Scale
В том-то и дело, что в последних Windows перезагрузка после изменения масштаба не требуется - Windows лишь предлагает совершить Sign Out, и то предлагает как-то вяло, ненавязчиво. Получается, что система никак не мешает пользователю изменить масштаб, закрыть настройки и вернуться в приложение. Я хочу определить момент изменения.
...
Рейтинг: 0 / 0
03.07.2017, 19:52:09
    #39482067
GunSmoker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про Scale
...
Рейтинг: 0 / 0
03.07.2017, 21:16:15
    #39482114
fd00ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про Scale
Dimitry SibiryakovЭта операция требует перезагрузки, которую приложение не переживётсамая попа в прыжках DPI при подключении по RDP с разными настройками((
...
Рейтинг: 0 / 0
05.07.2017, 14:40:00
    #39483202
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про Scale
fd00ch,

да? а я то думал это когда на оджном компьютере несколько мониторов с разными DPI и окошко таскают между ними

Возможно дельфино что-то поправило на эту тему, не проверял

https://github.com/delphinotes/BaseForms
...
Рейтинг: 0 / 0
05.07.2017, 22:47:27
    #39483442
delphinotes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про Scale
Arioch,
Обработку WM_DPICHANGED я не реализовывал, пока это больше экзотика и нет острой необходимости.
...
Рейтинг: 0 / 0
05.07.2017, 23:12:35
    #39483455
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про Scale
Зачем вручную отслеживать изменение масштабирования, если этим должна сама система заниматься (винда плюс вцл/фаерманки) и автоматом применять нужные настройки к приложению?
...
Рейтинг: 0 / 0
05.07.2017, 23:31:36
    #39483461
delphinotes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про Scale
JaDi,

VCL это делает только в последних версиях. И то, корявисто.. Вобщем, формочки надо изначально разрабатывать с учётом смены DPI в Run-Time.
...
Рейтинг: 0 / 0
05.07.2017, 23:41:05
    #39483462
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про Scale
delphinotes,

это как? Вручную выставлять размеры шрифтов и контролов в зависимости от текущего dpi?
...
Рейтинг: 0 / 0
06.07.2017, 01:51:25
    #39483476
white_nigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про Scale
JaDiэто как? Вручную выставлять размеры шрифтов и контролов в зависимости от текущего dpi?У нас с 17.1 добавлена поддержка HiDPI в наши контролы (правда не все успели, добавляем в минорах). Плюс наши диалоги в контролах поддерживают, в том числе и перенос окна между мониторами с разным DPI
...
Рейтинг: 0 / 0
06.07.2017, 02:37:41
    #39483481
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про Scale
JaDidelphinotes,

это как? Вручную выставлять размеры шрифтов и контролов в зависимости от текущего dpi?А чем процедура ScaleBy не устраивает?
...
Рейтинг: 0 / 0
06.07.2017, 19:46:14
    #39484096
delphinotes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про Scale
JaDidelphinotes,

это как? Вручную выставлять размеры шрифтов и контролов в зависимости от текущего dpi?

Нет. Но при размещении контролов относительно друг-друга - это необходимо учитывать. Вся фишка в том, что координаты и размеры - они целочислены. Если, скажем, у тебя отступ от левого края до контрола - 4 точки, то при масштабе в 125% они превратятся в 5 точек и всё будет красиво. А если было 6 точек, то после масштабирования будет 8 (а не 6 *1.25 = 7.5) - это будет малозаметно, но... скажем после последующего масштабирования вверх до 150% и обратного до 100% исходные 6 превратятся в 7 и всё поедет. (Да ты и сам это знаешь.)

Вот чтобы минимизировать вероятность накопления ошибок можно:
а) сохранять Design-размеры и позиции контролов, и масштабировать относительно сохранённых значений;
б) пользоваться свойствами align, alignwithmargins, margins, anchors и autosize (ессно не везде это допустимо, но можно).
А ещё не все кастомные контролы поддерживают тот же ScaleBy; если ещё не пофиксили, то VCL не масштабирует Constraints, Margins и Padding... и ещё фреймы не масштабировались при создании их в RunTime.
А ещё проблемы у обычных меню и PopupMenu - при масштабе 125% и выше они выглядят убого (в самой винде, кстати, тоже.. возможно в Win10 по другому, не проверял).
А ещё масштабирование отсутствует в ImageList'е - из-за этого тулбары и менюшки могут "скакать" (в VCL не хватает что-то типа FMX-ового MultiResImageList, или как он там).
А ещё неклиентская область не масштабируется (хотя вроде в Win10 уже).
А ещё контролы могут создаваться в RunTime, и здесь нельзя пользоваться константами (точнее можно, но необходимо делать что-то типа Height := MulDiv(iDefaultHeight, CurrentDPI, 96). А если пишется кастомная реализация прорисовки чего-нибудь, то написать хороший код - это надо постараться.

Вот все эти поддержки HighDPI, про которые пишут в каждом релизе делфей - каждый раз делается что-то, но проблемы остаются. Правда последний релиз (который Токио) - не смотрел ещё.
...
Рейтинг: 0 / 0
06.07.2017, 21:54:35
    #39484128
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про Scale
delphinotesПравда последний релиз (который Токио) - не смотрел ещё.та же фигня
пришлось переписывать часть внутренней обработки, больше мешает чем помощи :-(
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Про Scale / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]