Масштабирование формы Windows DPI - PullRequest
4 голосов
/ 30 января 2012

Ранее я использовал VGScene (предшественник Firemonkey) для создания приложения и недавно переключился на Firemonkey Delphi XE2.

Чтобы масштабировать мою форму в VGScene все, что мне нужно было сделать, это масштабировать объект Root объекта VGScene для масштабирования всего содержимого в форме.Однако я не уверен, как это должно быть сделано с помощью FireMonkey.

Моя форма состоит из двух TLayouts , одна выровнена по левому краю и одна настроена на выравнивание по клиенту, с вертикальным контролем разделения между левой имакеты клиентов.В макете клиента также есть поле со списком, в котором установлено выравнивание клиента.

Я попытался использовать базовый TLayout со всеми моими элементами управления и масштабировать базовый TLayout, но это не совсем правильно,левый макет масштабируется должным образом, но список клиента макета, кажется, выходит за правый и нижний край объекта макета клиента?то есть, когда у вас есть полный список, элементы списка выходят за правый край формы (которые обрезаны), и вертикальная полоса прокрутки также не отображается полностью, так как она проходит за нижнюю часть формы.Это похоже на то, как если бы ширина и высота клиентского макета масштабировались до размера, превышающего размер формы, но не должен ли он по-прежнему заполнять область формы?

Я пытался просто масштабировать отдельный объект, например, просто масштабироватьсписок, но это дает тот же результат, список выходит за границы формы.

У кого-нибудь есть идеи?

1 Ответ

0 голосов
/ 12 сентября 2013

Одна из возможностей состоит в том, что вы не совсем точно следовали инструкциям по расположению элементов управления и сплиттера, , как рекомендовано в документации TSplitter ?

Если вы этого не сделали, легко добраться до точки, где все свойства кажутся настроенными на правильные значения, но каким-то образом элементы управления и сплиттер просто не взаимодействуют. Я бы рекомендовал повторить попытку, обращая особое внимание на получение свойств align с правильными значениями, то есть alLeft для левого компонента, alLeft для разделителя и alClient для правого компонента.

...