Лекс Айрин писал(а):А то ведь, Юзер может и задрать разрешение.
Как раз для этого и подключается поддержка DPI - чтобы если пользователь изменяет настройки windows, то они будут соответствовать и в программе. А если не включать, то получается сбой. Это точно, т.к. у меня стоят нестандартные настройки DPI для windows и правильно стало отображаться только при активации DPI, там нужно включить чекбокс (для Vista+).
kazalex писал(а):Перед рассуждением о чьих либо знаниях я бы советовал вопрос перечитать, а если не доходит то и попытаться воспроизвести ситуацию.
Я не телепат и не понимаю "В чём конкретно вы меня хотите обвинить?".
Если lordgray - больше подойдёт предложенное мной решение,, то в чём проблема? Я предложил своё решение, а Вы своё. Более того, если моё решение приведёт к нужному результату, (при полном отключении Вашего решения), то предложенное мной решение - намного более корректно, т.к. заложено в самом Лазарусе. То что выложенный вами способ частично решает заданную проблему - не даёт вам право рефлексировать с такой мощной агрессией, кок-будто я у вас 100 рублей отнял. Если Вы специалист наивысочайшего класса, то попробуйте ответить на вот этот простейший вопрос:
http://www.freepascal.ru/forum/viewtopic.php?f=5&t=10420Всем хорошего дня и настроения!.
Добавлено спустя 26 минут 11 секунд:Вы между прочим пытаетесь поломать эту систему DPI, которая заложена в Лазарусе,
GetVistaPopupMenuMetrics <== это именно для Vista. Там как раз и подключили DPI, т.к. до Vista <== DPI не было.
Затем Вы берёте
GetThemePartSize и опять разрушаете систему вместо того чтобы, сделать правильно и подключить DPI.
Это разбор Вашего кода, чтоб и Вы понимали какие стандартные функции Вы поломали Вашим решением, вместо того чтобы, сделать правильно и подключить DPI.
.