|
|
|
Про Scale
|
|||
|---|---|---|---|
|
#18+
1. Запустилось приложение, когда в Windows было выставлено 100%. Приложение свернули - открыли настройки Windows и изменили на 125%. Как это совершенно точно определить - и то, что масштаб был изменён, и то, с какого значения на какое именно масштаб был изменён? 2. Масштаб в Windows XP отличается чем от масштаба в Windows 10? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2017, 18:17:55 |
|
||
|
Про Scale
|
|||
|---|---|---|---|
|
#18+
Любо пытныйПриложение свернули - открыли настройки Windows и изменили на 125%. Эта операция требует перезагрузки, которую приложение не переживёт. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2017, 19:21:48 |
|
||
|
Про Scale
|
|||
|---|---|---|---|
|
#18+
В том-то и дело, что в последних Windows перезагрузка после изменения масштаба не требуется - Windows лишь предлагает совершить Sign Out, и то предлагает как-то вяло, ненавязчиво. Получается, что система никак не мешает пользователю изменить масштаб, закрыть настройки и вернуться в приложение. Я хочу определить момент изменения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2017, 19:36:48 |
|
||
|
Про Scale
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovЭта операция требует перезагрузки, которую приложение не переживётсамая попа в прыжках DPI при подключении по RDP с разными настройками(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2017, 21:16:15 |
|
||
|
Про Scale
|
|||
|---|---|---|---|
|
#18+
fd00ch, да? а я то думал это когда на оджном компьютере несколько мониторов с разными DPI и окошко таскают между ними Возможно дельфино что-то поправило на эту тему, не проверял https://github.com/delphinotes/BaseForms ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2017, 14:40:00 |
|
||
|
Про Scale
|
|||
|---|---|---|---|
|
#18+
Arioch, Обработку WM_DPICHANGED я не реализовывал, пока это больше экзотика и нет острой необходимости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2017, 22:47:27 |
|
||
|
Про Scale
|
|||
|---|---|---|---|
|
#18+
Зачем вручную отслеживать изменение масштабирования, если этим должна сама система заниматься (винда плюс вцл/фаерманки) и автоматом применять нужные настройки к приложению? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2017, 23:12:35 |
|
||
|
Про Scale
|
|||
|---|---|---|---|
|
#18+
JaDi, VCL это делает только в последних версиях. И то, корявисто.. Вобщем, формочки надо изначально разрабатывать с учётом смены DPI в Run-Time. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2017, 23:31:36 |
|
||
|
Про Scale
|
|||
|---|---|---|---|
|
#18+
delphinotes, это как? Вручную выставлять размеры шрифтов и контролов в зависимости от текущего dpi? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2017, 23:41:05 |
|
||
|
Про Scale
|
|||
|---|---|---|---|
|
#18+
JaDiэто как? Вручную выставлять размеры шрифтов и контролов в зависимости от текущего dpi?У нас с 17.1 добавлена поддержка HiDPI в наши контролы (правда не все успели, добавляем в минорах). Плюс наши диалоги в контролах поддерживают, в том числе и перенос окна между мониторами с разным DPI ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2017, 01:51:25 |
|
||
|
Про Scale
|
|||
|---|---|---|---|
|
#18+
JaDidelphinotes, это как? Вручную выставлять размеры шрифтов и контролов в зависимости от текущего dpi?А чем процедура ScaleBy не устраивает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2017, 02:37:41 |
|
||
|
Про Scale
|
|||
|---|---|---|---|
|
#18+
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, про которые пишут в каждом релизе делфей - каждый раз делается что-то, но проблемы остаются. Правда последний релиз (который Токио) - не смотрел ещё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2017, 19:46:14 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=138&tid=2042058]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
65ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 189ms |
| total: | 316ms |

| 0 / 0 |
