Привязка компонентов графического интерфейса в FireMonkey - PullRequest
7 голосов
/ 02 сентября 2011

Только что начал тестировать FireMonkey и не могу найти способ создания динамически изменяемых / позиционируемых компонентов.

У VCL есть свойство Anchor, у FM нет.

Кто-нибудь видит то, что я пропустил

Обновление:

Простая привязка недоступна в FM.Вы должны создать TLayouts и выровнять их, а затем поместить элементы управления внутри панели, чтобы они «прилипали».Если вы использовали старую версию Builder или Delphi, это будет то же самое, что мы привыкли делать с TPanels.

Ответы [ 5 ]

11 голосов
/ 02 сентября 2011

Это ответ на ваш вопрос.Свойство anchors в VCL, по-видимому, было заменено на Margins и Padding (из соображений производительности), и я нашел некоторую документацию на вики XE2 (http://docwiki.embarcadero.com/RADStudio/en/FireMonkey_Application_Design). Я сомневаюсь, что якоря будут установлены позже.две кнопки («ОК» и «Отмена») внизу формы с правой стороны делают следующее. См. изображения ниже для кнопки «ОК» и «Отмена».

enter image description here

Поместите небольшую панельВыровняйте по форме снизу, скажем, около 40. Установите «Поля» на нижней панели, чтобы создать меньшее пространство, в котором будут жить кнопки, убедитесь, что выровняли кнопку на alRight. Например, расстояние междуправый край формы и крайняя правая кнопка имеют поле 15. Верхнее и нижнее поля были установлены на 12. Это закрепляет крайнюю правую кнопку.

'Заполнение' противоположно краю,отступы оставляют пространство вне элемента управления. К самой правой кнопке я добавил отступ 20 со стороны влево , это будет спаCE между двумя кнопками.Для второй кнопки слева от первой все, что нам нужно сделать, это установить для свойства align значение alRight, не нужно настраивать отступы или поля.

7 голосов
/ 02 сентября 2011

Удалите несколько компонентов TLayout в форму и настройте их свойства выравнивания по желанию.Перетащите другие компоненты в эти макеты и установите их свойства выравнивания относительно TLayout, в котором они содержатся. Кажется, это работает для меня ...

5 голосов
/ 02 сентября 2011

Вот ответ, который вы ищете: элементы управления FMX не имеют якорей.

Я предполагаю, что это будет функция "следующей версии".

1 голос
/ 02 сентября 2011

Быстрый просмотр свойства выравнивания показывает гораздо больше вариантов, чем мы имели в предыдущих версиях Delphi:

enter image description here

Разве это не решает вашу проблему (по крайней мере, частично).
Я помню, как долго добирался по ОК, просто используя вложенные panel s и align для разметки.

0 голосов
/ 04 октября 2011

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

В противном случае используйте поля и отступы (как HTML / CSS).

...