Как правильно спроектировать пользовательский интерфейс приложения Delphi с поддержкой высокого разрешения (готовность 4k)? - PullRequest
1 голос
/ 08 ноября 2019

Впервые у меня возникли проблемы с созданием «сложного» интерфейса с Delphi. Я использую монитор 4K для разработки и тестирования, и у меня есть некоторые проблемы с масштабированием.

Мое приложение использует дизайн с двумя колонками, представьте себе представление diff под управлением источника, где у вас есть левая панель и правая панель, котораяЗеркально отразите сами компоненты, но содержание (текст) этих компонентов различается.

Чтобы дать вам представление, я делаю это в форме изменения размера:

edtFixExifLeftFile.Width := Floor((pnlFixExifTop.ClientWidth - (bbpFixExifBrowseLeft.Width * 2 + 42)) / 2);
bbpFixExifBrowseLeft.Left := edtFixExifLeftFile.Left + edtFixExifLeftFile.Width + 5;

edtFixExifRightFile.Left := bbpFixExifBrowseLeft.Left + bbpFixExifBrowseLeft.Width + 16;
edtFixExifRightFile.Width := edtFixExifLeftFile.Width;
bbpFixExifBrowseRight.Left := edtFixExifRightFile.Left + edtFixExifRightFile.Width + 5;

Таким образом, оба столбца занимают 50% пространстваЭто идеальный пиксель при использовании в среде HD (1080p), но в среде 4K масштабирование (мой TForm.Scaled = True) полностью «съедает» одно из полей (я использую поля в 8 пикселей, а масштабирование занимает примерно на 9 пикселей больше, чем ожидалось). В 4K это выглядит неправильно (правильный TEdit немного переполняет TForm).

Как я могу создать идеальный по пикселям интерфейс в HD и 4K средах? Как правильно кодировать изменение размера моего компонента?

Я использую последнюю версию Delphi (10.3) и не использую причудливые компоненты (только "стандартный" VCL).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...