如何在FMX设计时与未存储的子控件进行交互? TTabControl标签的内容

问题描述

过去三天我一直在扫描TTabControl的代码,发现以下内容:

  1. 该控件将接受子控件,但会根据其所在状态重定向它们,例如: 如果子项是TTabItem,则它将其分配给用作标签容器的FContent: TContent,否则,如果子项是特殊控件(TEffect,TAnimation ...),它将被添加到TTabControl否则,如果有一个活动标签,则该孩子将被重定向到该标签,否则它将被重定向到FNoItemsContent: TContent不可见控件(不知道为什么!)。
  2. 将子级重定向到活动选项卡时,它将重定向到选项卡的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 (将#修改为@)