Компоненты, добавленные в TcxTabSheet, не отображаются во время выполнения, когда TcxPageControl размещается в TFrame.
Я строю многоразовые TFrame
который содержит TcxPageControl
, Идея состоит в том, что рамка помещается в форму, и тогда я могу добавить страницы, специфичные для этой формы.
Это работает нормально, я могу успешно добавлять страницы через конструктор, и во время выполнения эти вкладки появляются. Однако проблема заключается в том, что любые компоненты, которые сбрасываются на TcxTabSheet
нет.
Если я добавлю страницу в сам фрейм (то есть в базовый фрейм, а не в перетаскиваемый на форму) и добавлю на него компоненты, они будут показаны. Однако, если я добавлю компоненты на ту же страницу из формы, они этого не сделают.
Я явно что-то здесь упускаю, но я бы подумал, что элемент управления страницей будет работать так же, как и в любой форме (независимо от того, был ли он отображен из TFrame
) но, похоже, что- то не нравится.
Это ошибка или я просто не правильно делаю?
Примечание. Я использую опцию "Добавить в палитру", чтобы добавить фрейм в качестве компонента, так как я хочу TPageControl
свойства (если это важно)
1 ответ
Как оказалось, такое поведение на самом деле является ограничением VCL, а не ограничением TcxPageControl
сам компонент. Разница здесь была TcxPageControl
позволяет добавлять страницы из экземпляра Frame, что вводит в заблуждение.
Обходной путь должен просто унаследовать от TFrame
экземпляр, который содержит TcxPageControl
(или даже просто стандарт TPageControl
) и добавьте туда страницы. Не идеально, так как это означает, что я эффективно создаю отдельный TFrame
за страницу, но по крайней мере это означает, что я могу повторно использовать общий код, который был целью.