|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.06.2022, 19:33 | #1 |
Разъяснятор
Форумчанин
Регистрация: 21.04.2022
Сообщений: 126
|
Как запретить/использовать изменение масштаба шрифтов и компонентов в Win 7, 10 (RAD 10.4.1)
Доброго времени суток!
В инете ничего путного по этой теме не нашлось (по крайней мере пока). Я делаю аккуратное расположение элементов, а при увеличении масштаба до 200% в Windows 10 все перекашивает (в частности TLabel-ы съезжают и в них текст налезает во много строчек сам на себя). Как получить значение масштаба, выбранного в системе? И как корректно оперировать с этим параметром? В инете накопал - люди экспериментируют с DPI/PPI... И каким-то волшебным параметром ScaleBy. Help! |
29.06.2022, 22:26 | #2 |
Разъяснятор
Форумчанин
Регистрация: 21.04.2022
Сообщений: 126
|
Узнать текущий PPI:
Код:
100% масштаба = 96 PPI 125% масштаба = 120 PPI 150% масштаба = 144 PPI 200% масштаба = 192 PPI Небольшое затруднение создает тот факт, что пользователь может выбрать и другие значения с точностью до 1% масштаба - тогда PPI будет какой-то другой, а с этими 4-мя стандартными значениями вполне можно сделать так: Код:
Последний раз редактировалось hexor_boo; 29.06.2022 в 22:34. |
29.06.2022, 23:03 | #3 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Ну а дальше посчитайте 96PPI * 1.25 = 120PPI; 96PPI * 1.5 = 144PPI; 96PPI * 2 = 192 PPI тогда 175% -> 96PPI * 1.75 = 168PPI и 1% -> 96PPI * 0.01 = 1PPI (округление 0.96PPI)
Но вести вычисления придется в этих нерусских дюймах. Лучше перейти к миллиметрам или сантиметрам. |
30.06.2022, 00:40 | #4 |
Разъяснятор
Форумчанин
Регистрация: 21.04.2022
Сообщений: 126
|
2 macomics, так это сразу понятно, что 1% = 0,96 PPI. Пока не вижу огромного смысла просчитывать варианты кроме 100%, 125%, 150% и 200%, потому что за счет этого округления до 1PPI будут сильно искажаться размеры и координаты элементов управления для которых расчет этих параметров будет сделан через формулу с PPI
|
30.06.2022, 00:53 | #5 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Не более +/-1 пикселя.
Вы же не складываете 96 из 1 PPI, а выполняете 96 * 1 / 100 = 0, 96 в остатке. Если в остатке больше 47, тогда прибавляете 1 к делимому. В результате получаете погрешность в 1 пиксель на дюйм. Учитывая то, что вывод производится в пикселях, тогда ваша погрешность не будет иметь большого значения. Дальше ваши вычисления в пикселях надо перевести в дюймы (но мне предпочтительнее миллиметры: умножаете на 127 и делите на 5). И все получится. Последний раз редактировалось macomics; 30.06.2022 в 00:56. |
30.06.2022, 02:42 | #6 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,894
|
Оставь надежду всяк, кто этого захотел.
Общего решения для формирования окна программы при всех возможных разрешениях и размерах не существует и не может существовать! А запрещать пользователю что-либо делать это ну очень не кошерно. |
30.06.2022, 03:09 | #7 | |
Разъяснятор
Форумчанин
Регистрация: 21.04.2022
Сообщений: 126
|
Цитата:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
image изменение масштаба | _Санек_ | Общие вопросы Delphi | 1 | 27.09.2015 16:42 |
Изменение масштаба сайта | far1towi4 | HTML и CSS | 6 | 11.06.2013 12:29 |
Изменение масштаба листа ScrollBar | ольгаг | Microsoft Office Excel | 5 | 26.06.2012 12:35 |
Изменение масштаба | BaRSyk174 | Общие вопросы Delphi | 3 | 30.11.2009 17:12 |
изменение масштаба | ruavia3 | Microsoft Office Excel | 1 | 30.07.2009 09:20 |