Компоненты, добавленные в TcxTabSheet, не отображаются во время выполнения, когда TcxPageControl размещается в TFrame.

Я строю многоразовые TFrame который содержит TcxPageControl, Идея состоит в том, что рамка помещается в форму, и тогда я могу добавить страницы, специфичные для этой формы.

Это работает нормально, я могу успешно добавлять страницы через конструктор, и во время выполнения эти вкладки появляются. Однако проблема заключается в том, что любые компоненты, которые сбрасываются на TcxTabSheet нет.

Если я добавлю страницу в сам фрейм (то есть в базовый фрейм, а не в перетаскиваемый на форму) и добавлю на него компоненты, они будут показаны. Однако, если я добавлю компоненты на ту же страницу из формы, они этого не сделают.

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

Это ошибка или я просто не правильно делаю?

Примечание. Я использую опцию "Добавить в палитру", чтобы добавить фрейм в качестве компонента, так как я хочу TPageControl свойства (если это важно)

1 ответ

Решение

Как оказалось, такое поведение на самом деле является ограничением VCL, а не ограничением TcxPageControl сам компонент. Разница здесь была TcxPageControl позволяет добавлять страницы из экземпляра Frame, что вводит в заблуждение.

Обходной путь должен просто унаследовать от TFrame экземпляр, который содержит TcxPageControl (или даже просто стандарт TPageControl) и добавьте туда страницы. Не идеально, так как это означает, что я эффективно создаю отдельный TFrame за страницу, но по крайней мере это означает, что я могу повторно использовать общий код, который был целью.

Разъяснение от DevExpress.

Другие вопросы по тегам