问题描述
过去三天我一直在扫描TTabControl
的代码,发现以下内容:
- 该控件将接受子控件,但会根据其所在状态重定向它们,例如:
如果子项是
TTabItem
,则它将其分配给用作标签容器的FContent: TContent
,否则,如果子项是特殊控件(TEffect,TAnimation ...
),它将被添加到TTabControl
否则,如果有一个活动标签,则该孩子将被重定向到该标签,否则它将被重定向到FNoItemsContent: TContent
不可见控件(不知道为什么!)。 - 将子级重定向到活动选项卡时,它将重定向到选项卡的
FContent: TContent
成员(在设计时,位置将被调整)。
此处重定向的单词的含义是将孩子分配给哪个父母。
因此Child.Parent := TabControl;
触发了上述操作,这就是执行该操作的方法。
procedure TTabControl.AddOrInsertObject(const AObject: TFmxObject; const Index: Integer = MaxInt);
让我感到困惑的是,以下是未存储的控件,但在设计和运行时是孩子的父母。
-
TTabItem.FContent
。 -
TTabControl.FContent
。 -
TTabControl.FNoItemContent
。
TTabItem
是存储的,因此在IDE中添加标签(右键单击添加新的TabItem)时,您会在结构面板中看到TTabItem
是标签控件的子级,放下另一个控件,您将看到它是活动选项卡(TTabItem而不是其FContent)的子控件。
您可以与控件以及所有控件进行交互。
我的问题
此机制背后的想法是什么,如果我想从头开始做该怎么做?
我想要的是设计时间功能。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)