Жидкий макет формы в Delphi

Другое голосование за ANTLR/ANTLRWorks. Если Вы создаете две версии файла, один с кодом Java для того, чтобы на самом деле выполнить команды, и один без (только с грамматикой), то у Вас есть исполняемая спецификация языка, который является большим для тестирования, блага для документации и большого средства экономии времени, если Вы когда-нибудь решаете портировать его.

9
задан Yogi Yang 007 23 November 2009 в 05:46
поделиться

5 ответов

Я думаю, что ваш лучший вариант - использовать компонент, который обрабатывает макет ваших элементов управления vcl в вашей форме во время выполнения (в зависимости от на условиях, которые вы определяете). Я рекомендую вам попробовать Devexpress ExpressLayout Control

, здесь вы можете найти два отличных демонстрационных видеоролика

alt text
(источник : devexpress.com )

Вы можете проверить эти функции

Автоуправление - Группы управления и отдельные элементы управления автоматически управляются с помощью Layout Control. Вы никогда не беспокоитесь о попиксельном позиционировании.

Автоматическое изменение размера формы - Размер формы можно автоматически изменять, чтобы она лучше соответствовала ее содержимому.

10
ответ дан 4 December 2019 в 13:47
поделиться

Я не уверен, насколько сложный у вас макет, но я думаю, вы можете использовать для этого TFlowPanel и / или TGridPanel. Flowpanel позволяет легко обрабатывать компоненты, которые меняют видимость. Я не уверен, насколько хорошо gridpanel справляется с тем же ...

4
ответ дан 4 December 2019 в 13:47
поделиться

Что бы я сделал со сложной компоновкой фактически разделен на несколько вкладок. У этого есть два преимущества. Это упрощает макет формы и позволяет отображать и скрывать целые вкладки в зависимости от выбора, сделанного на других вкладках.

0
ответ дан 4 December 2019 в 13:47
поделиться

Какие элементы управления вы динамически скрываете, а что вы имеете в виду под автозаполнением пространства?

Я не знаю, так ли просто: разместите элементы управления на панелях и используйте align alTop / alClient / alBottom. Когда вы скрываете панель, все остальные панели автоматически перемещаются вверх. Однако есть одна проблема: если вы хотите снова показать панель, порядок панелей иногда может быть нарушен ... Это можно исправить, задав вручную свойство .Top или "скрыть", установив .Height: = 1;

1
ответ дан 4 December 2019 в 13:47
поделиться

Компоненты Raize имеют компонент пользовательского интерфейса TRzFlowPanel. Делает именно то, что вам нужно.

Используйте TRzFlowPanel, чтобы поместить в форму пустую панель потока. Основное различие между традиционной панелью и потоковой панелью заключается в способе размещения элементов управления. На традиционной панели вы размещаете элемент управления (например, кнопку) в определенном месте. Вы можете свободно перемещать этот элемент управления в любое место на панели с помощью мыши. На панели потока каждый элемент управления размещается в определенном месте, независимо от того, где вы размещаете его с помощью мыши. Автоматическое расположение контролируется свойством FlowStyle. Например, используя свойство FlowStyle по умолчанию для LeftRightTopBottom, первый элемент управления, который вы добавляете на панель потока, привязывается к верхнему левому углу. Второй элемент управления, к которому вы добавляете привязки рядом с первым элементом управления, и так далее.

0
ответ дан 4 December 2019 в 13:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: