При добавлении компонентов во время выполнения программы, вам необходимо присвоить для каждого компонента свойству parent (контейнер) _страницу_ компонента notebook, а не сам notebook.
Вы можете сделать это следующим образом (пример дан для кнопки):
MyButton := TButton.Create( Form1 ); {как обычно...} ... ... MyButton.Parent := TTabPage( TabbedNotebook1.Pages.Objects[n] ); { <== где 'n' - индекс желаемой страницы ==> } |
Свойство notebook 'Pages' имеет тип StringList и содержит список заголовков и объектов 'TTabPage'.
Я сам пользовался этой техникой несколько месяцев. Не могу вспомнить где я сам раздобыл эту информацию, но в документации про это ничего не сказано. Может кто-нибудь знает, где об этом написано?
var NewButton : TButton; begin NewButton := TButton.Create(Self); NewButton.Parent := TWinControl(TabbedNotebook1.Pages.Objects[1]) ... |
Вот как страница TNotebook может быть использована в качестве родителя для вновь создаваемого на ней компонента:
NewButton.Parent := TWinControl(Notebook1.Pages.Objects[1]) |
Вот как страница (закладка) TTabSet может быть использована в качестве родителя для вновь создаваемого на ней компонента:
NewButton.Parent := TWinControl(TabSet1.Tabs.Objects[1]) |
[001451]