Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 如何在FMX设计时与非存储子控件交互?(TTabControl选项卡内容)_Delphi_Tabcontrol_Tabcontainer - Fatal编程技术网

Delphi 如何在FMX设计时与非存储子控件交互?(TTabControl选项卡内容)

Delphi 如何在FMX设计时与非存储子控件交互?(TTabControl选项卡内容),delphi,tabcontrol,tabcontainer,Delphi,Tabcontrol,Tabcontainer,在过去的三天里,我一直在扫描TTabControl的代码,我发现了以下内容: 控件将接受子控件,但会根据其所处的状态重定向它们,例如: 如果子控件是TTabItem它将把它分配给FContent:TContent,该选项卡用作选项卡容器,否则如果子控件是特殊控件(tefect,TAnimation…),它将被添加到TTabControl),否则如果有活动选项卡,子控件将被重定向到该选项卡,否则它将被重定向到FNoItemsContent:TContent不可见控件(不知道为什么!!!) 当子项被

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

  • 控件将接受子控件,但会根据其所处的状态重定向它们,例如: 如果子控件是
    TTabItem
    它将把它分配给
    FContent:TContent
    ,该选项卡用作选项卡容器,否则如果子控件是特殊控件(
    tefect,TAnimation…
    ),它将被添加到
    TTabControl
    ),否则如果有活动选项卡,子控件将被重定向到该选项卡,否则它将被重定向到
    FNoItemsContent:TContent
    不可见控件(不知道为什么!!!)
  • 当子项被重定向到活动选项卡时,它将被重定向到选项卡的
    f内容:t内容
    成员(在设计时位置将被调整)
  • 此处“重定向”一词的含义是将孩子分配给哪个家长

    So
    Child.Parent:=TabControl
    触发上述操作,这是执行此操作的方法

    procedure TTabControl.AddOrInsertObject(const AObject: TFmxObject; const Index: Integer = MaxInt);
    
    让我困惑的是,以下是非存储控件,但它们是子控件的设计和运行时的父控件

    • TTabItem.FContent
    • TTabControl.FContent
    • TTabControl.FNoItemContent
    由于存储了
    TTabItem
    ,因此在IDE中添加选项卡(右键单击add new TabItem)时,您将在结构面板中看到
    TTabItem
    s是选项卡控件的子控件,拖放另一个控件,您将看到它是活动选项卡的子控件(TTabItem而不是其FContent)

    您可以与控件和所有控件交互

    我的问题

    这个机制背后的想法是什么?如果我想从头开始,如何做同样的事情


    我想要的是设计时功能。

    “这个机制背后的想法是什么”-听起来像是你应该直接问Embarcadero的问题,因为他们是这样设计的。@RemyLebeau我想我最终必须这样做,我在这里问这个问题的原因只是为了从一个有知识的人那里得到一个更快的答案。也许有人必须做我在这里要做的事。